logo资料库

delphi精要.pdf

第1页 / 共399页
第2页 / 共399页
第3页 / 共399页
第4页 / 共399页
第5页 / 共399页
第6页 / 共399页
第7页 / 共399页
第8页 / 共399页
资料共399页,剩余部分请下载后查看
第1章关于Delphi与本书 8页
1.1Delphi是什么 8页
1.1.1Delphi的历史 8页
1.1.2选择Delphi意味着什么. 9页
1.1.3如何使用Delphi编程 10页
1.2本书的特点. 11页
1.2.1本书有哪些内容,没有哪些内容 12页
1.2.2本书是如何写作的. 12页
1.2.3如何阅读本书 12页
第2章ObjectPascal入门 14页
2.1运算符 14页
2.1.1赋值运算符. 14页
2.1.2比较运算符. 14页
2.1.3逻辑运算符. 15页
2.1.4算术运算符. 15页
2.1.5按位运算符. 16页
2.1.6其他运算符和模拟运算 16页
2.2常量和变量 19页
2.2.1无类型常量和有类型常量 20页
2.2.2全局变量和局部变量. 20页
2.2.3声明时使用编译时函数 21页
2.2.4资源字符串 22页
2.3过程和函数 22页
2.3.1过程和函数的区别 22页
2.3.2子过程. 23页
2.4数据类型 24页
2.4.1常用类型和复杂类型. 24页
2.4.2不同语言的数据类型对照表. 24页
2.5程序流程控制. 25页
2.5.1条件分支 25页
2.5.2循环 26页
2.5.3跳转 27页
2.5.4用过程辅助实现流程控制 28页
2.6单元的组织结构 31页
2.6.1Program的组织结构 31页
2.6.2Unit的组织结构 32页
2.6.3单元循环引用. 34页
2.7withdo语句的用法 35页
2.8IDE的快捷键列表 36页
第3章ObjectPascal精要. 38页
3.1数据类型及其相互关系 38页
3.1.1数据类型概述. 39页
3.1.2变量的内存分配和释放 55页
3.1.3数据的内存结构 59页
3.1.4强数据类型与类型转化 60页
3.2过程和函数 66页
3.2.1作用域. 67页
3.2.2参数传递 69页
3.2.3声明指令 73页
3.3类和类成员 73页
3.3.1类和类成员概述 74页
3.3.2深入认识方法. 76页
3.3.3深入认识属性. 85页
3.3.4深入认识事件. 91页
3.3.5类成员重新声明 93页
3.3.6inherited释疑 95页
3.3.7接口的真相 96页
3.4编译指令 102页
3.4.1开关指令 103页
3.4.2参数指令 106页
3.4.3条件指令. 109页
第4章VCL入门. 111页
4.1VCL概述 111页
4.2组件与控件的概念 112页
4.3使用VCL 112页
4.4扩展VCL 114页
第5章VCL精要 115页
5.1揭开VCL的神秘面纱 115页
5.1.1VCL架构 115页
5.1.2构造和析构的内幕. 118页
5.1.3虚拟方法表和动态方法表 122页
5.1.4TObject如何使用虚拟方法表 125页
5.1.5运行时类型信息. 129页
5.2VCL的消息机制 137页
5.2.1VCL消息机制. 137页
5.2.2处理消息的八种方法 141页
5.2.3选用什么方法发送消息. 147页
5.2.4VCL消息大全. 151页
5.3多态性 168页
5.3.1多态性的概念 169页
5.3.2多态性和虚方法的关系. 171页
第6章组件开发实战. 174页
6.1三种组件开发方法 174页
6.1.1继承、聚合和子类化 174页
6.1.2接口、虚方法和辅助类的选择. 176页
6.2文件拖放监视器. 176页
6.2.1文件拖放原理 176页
6.2.2文件拖放实例 177页
6.2.3组件封装. 178页
6.3托盘组件. 182页
6.3.1装入托盘图标 182页
6.3.2在应用程序最小化时去掉状态栏的图 184页
6.3.3给托盘图标增加接收鼠标消息功能 186页
6.3.4处理鼠标消息 188页
6.3.5显示动画图标 189页
6.3.6设置程序的自动启动功能 189页
6.3.7组件封装. 190页
6.4自动下拉的TComboBox 197页
6.5开发数据敏感控件 202页
6.5.1数据敏感原理 203页
6.5.2开发日期敏感控件 203页
6.6开发聚合组件 210页
6.6.1开发LabelDBDatePicker 210页
6.6.2加强LabelDBDatePicker 213页
6.7开发图形图像控件 218页
6.8开发QuickReport组件 225页
第7章组件开发相关工作. 232页
7.1包和包编译指令. 232页
7.2创建组件图标 233页
7.3属性编辑器 234页
7.4组件编辑器 238页
第8章常用函数和过程 242页
8.1数据类型转化类. 242页
8.1.1数值和字符串的相互转化 242页
8.1.2整数和字符串的相互转化 243页
8.1.3实数和字符串的相互转化 243页
8.1.4实数子类型的相互转化. 244页
8.1.5布尔类型和字符串的相互转化. 244页
8.2字符串处理类 244页
8.2.1字符串的分类 247页
8.2.2和字符串相关的类 248页
8.3流处理类. 252页
8.4内存管理、程序流程控制类 257页
8.4.1内存管理. 257页
8.4.2程序流程控制 258页
8.5文件操作类 259页
8.5.1使用文件句柄进行I/O处理 259页
8.5.2使用Pascal文件变量进行I/O处理 260页
8.5.3面向对象文件I/O处理 262页
8.5.4文件属性操作 262页
8.5.5其他函数和方法. 263页
8.6日期时间类 265页
8.6.1获取/合成日期/时间. 265页
8.6.2日期/时间和字符串的转换 266页
8.6.3日期/时间的运算 266页
8.7VCL类. 267页
8.7.1Classes单元 267页
8.7.2Controls单元 269页
8.7.3Dialogs单元 269页
8.8位运算类. 271页
8.9图形图像类 273页
第9章高级开发技巧. 275页
9.1自定义窗口过程. 275页
9.2自定义消息及其替代方法. 277页
9.3自定义系统惟一消息 279页
9.4新颖的类工厂 282页
9.5使用对象库 288页
9.6非发布(published)数据的持久化 294页
9.7使用回调函数 295页
9.8使用递归算法 297页
9.9编写NT服务程序. 301页
9.10编写只能惟一运行的程序 302页
9.11字段类型全家福 305页
9.12获取数据库结构信息 307页
9.13深入使用TCanvas 308页
9.14指针列表类的使用. 315页
9.15结构化存储技术 319页
9.16挂钩技术 328页
9.17TRichEdit高级开发 334页
9.18用TTreeView分析数据表的结构 341页
9.19SQL语句分析器 346页
9.20剪贴板高级编程 351页
第10章综合例子--使用Socket传输多个文件 357页
10.1Socket简介. 357页
10.2TServerSocket和TClientSocket 358页
10.3设计通讯协议 361页
10.4实现服务端. 364页
10.5实现客户端. 374页
10.6组件封装 381页
10.7自动下载技术在项目中的应用. 398页
内 容 提 要 本书的核心是讲述 Object Pascal 和 VCL 的重、难点知识(即所谓“精要”),集中于第 3 章、第 5 章。第 2 章、第 4 章阐明相应的一些基本概念,是为初学者而设立的。 本书也是一本参考手册,包括了“IDE 的快捷键列表”(2.8 节)、“编译指令”(3.4 节)、“VCL 消 息大全”(5.2.4 节)、“常用函数和过程”(第 8 章)以及一些常用的、重要的开发技巧(第 9 章)等内 容。 本书同时也较为全面地讲述了组件开发知识,集中于第 6 章、第 7 章。 第 10 章通过一个实例综合运用了全书内容。 未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。 版权所有,侵权必究。 图书在版编目(CIP)数据 Delphi 精要/罗小平编著.—北京:电子工业出版社,2004.1 (Borland In-Depth Series\Borland 大系) ISBN 7-5053-9412-6 Ⅰ.D... Ⅱ.罗... Ⅲ.软件工具-程序设计 Ⅳ.TP311.56 中国版本图书馆 CIP 数据核字(2003)第 110153 号 责任编辑:周 筠 陈元玉 技术编辑:韩 磊 印 刷: 出版发行:电子工业出版社 北京市海淀区万寿路 173 信箱 邮编 100036 经 销:各地新华书店 开 本:787×980 1/16 印张:25.25 字数:600 千字 印 次:2004 年 1 月第 1 次印刷 印 数:6 000 册 定价:39.8 元(含光盘 1 张) 凡购买电子工业出版社的图书,如有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部 联系。联系电话:(010)68279077。质量投诉请发邮件至 zlts@phei.com.cn,盗版侵权举报请发邮件至 dbqq@phei.com.cn。
 目 录 第 1 章 关于 Delphi 与本书............................................................................................................... (1) 1.1 Delphi 是什么 .............................................................................................................................. (1) 1.1.1 Delphi 的历史 .................................................................................................................. (1) 1.1.2 选择 Delphi 意味着什么 ................................................................................................. (2) 1.1.3 如何使用 Delphi 编程 ..................................................................................................... (3) 1.2 本书的特点 .................................................................................................................................. (4) 1.2.1 本书有哪些内容,没有哪些内容................................................................................... (5) 1.2.2 本书是如何写作的 .......................................................................................................... (5) 1.2.3 如何阅读本书 .................................................................................................................. (5) 第 2 章 Object Pascal 入门............................................................................................................... (7) 2.1 运算符 .......................................................................................................................................... (7) 2.1.1 赋值运算符 ...................................................................................................................... (7) 2.1.2 比较运算符 ...................................................................................................................... (7) 2.1.3 逻辑运算符 ...................................................................................................................... (8) 2.1.4 算术运算符 ...................................................................................................................... (8) 2.1.5 按位运算符 ...................................................................................................................... (9) 2.1.6 其他运算符和模拟运算 .................................................................................................. (9) 2.2 常量和变量 ................................................................................................................................ (12) 2.2.1 无类型常量和有类型常量 ............................................................................................ (13) 2.2.2 全局变量和局部变量 .................................................................................................... (13) 2.2.3 声明时使用编译时函数 ................................................................................................ (14) 2.2.4 资源字符串 .................................................................................................................... (15) 2.3 过程和函数 ................................................................................................................................ (15) 2.3.1 过程和函数的区别 ........................................................................................................ (15) 2.3.2 子过程............................................................................................................................ (16) 2.4 数据类型 .................................................................................................................................... (17) 2.4.1 常用类型和复杂类型 .................................................................................................... (17)
          精要 ·2· 2.4.2 不同语言的数据类型对照表 ........................................................................................ (17) 2.5 程序流程控制 ............................................................................................................................ (18) 2.5.1 条件分支........................................................................................................................ (18) 2.5.2 循环................................................................................................................................ (19) 2.5.3 跳转................................................................................................................................ (20) 2.5.4 用过程辅助实现流程控制 ............................................................................................ (21) 2.6 单元的组织结构 ........................................................................................................................ (24) 2.6.1 Program 的组织结构 ..................................................................................................... (24) 2.6.2 Unit 的组织结构 ............................................................................................................ (25) 2.6.3 单元循环引用 ................................................................................................................ (27) 2.7 with...do 语句的用法 ................................................................................................................. (28) 2.8 IDE 的快捷键列表..................................................................................................................... (29) 第 3 章 Object Pascal 精要............................................................................................................. (31) 3.1 数据类型及其相互关系 ............................................................................................................ (31) 3.1.1 数据类型概述 ................................................................................................................ (32) 3.1.2 变量的内存分配和释放 ................................................................................................ (48) 3.1.3 数据的内存结构 ............................................................................................................ (52) 3.1.4 强数据类型与类型转化 ................................................................................................ (53) 3.2 过程和函数 ................................................................................................................................ (59) 3.2.1 作用域............................................................................................................................ (60) 3.2.2 参数传递........................................................................................................................ (62) 3.2.3 声明指令........................................................................................................................ (66) 3.3 类和类成员 ................................................................................................................................ (66) 3.3.1 类和类成员概述 ............................................................................................................ (67) 3.3.2 深入认识方法 ................................................................................................................ (69) 3.3.3 深入认识属性 ................................................................................................................ (78) 3.3.4 深入认识事件 ................................................................................................................ (84) 3.3.5 类成员重新声明 ............................................................................................................ (86) 3.3.6 inherited 释疑................................................................................................................. (88) 3.3.7 接口的真相 .................................................................................................................... (89) 3.4 编译指令 .................................................................................................................................... (95) 3.4.1 开关指令........................................................................................................................ (96) 3.4.2 参数指令........................................................................................................................ (99)  
                                       精要 ·3· 3.4.3 条件指令...................................................................................................................... (102) 第 4 章 VCL 入门............................................................................................................. (104) 4.1 VCL 概述 ................................................................................................................................. (104) 4.2 组件与控件的概念 .................................................................................................................. (105) 4.3 使用 VCL ................................................................................................................................. (105) 4.4 扩展 VCL ................................................................................................................................. (107) 第 5 章 VCL 精要 .............................................................................................................................. (108) 5.1 揭开 VCL 的神秘面纱 ............................................................................................................ (108) 5.1.1 VCL 架构 ..................................................................................................................... (108) 5.1.2 构造和析构的内幕 .......................................................................................................(111) 5.1.3 虚拟方法表和动态方法表 .......................................................................................... (115) 5.1.4 TObject 如何使用虚拟方法表 .................................................................................... (118) 5.1.5 运行时类型信息 .......................................................................................................... (122) 5.2 VCL 的消息机制 ..................................................................................................................... (130) 5.2.1 VCL 消息机制 ............................................................................................................. (130) 5.2.2 处理消息的八种方法 .................................................................................................. (134) 5.2.3 选用什么方法发送消息 .............................................................................................. (140) 5.2.4 VCL 消息大全 ............................................................................................................. (144) 5.3 多态性 ...................................................................................................................................... (161) 5.3.1 多态性的概念 .............................................................................................................. (162) 5.3.2 多态性和虚方法的关系 .............................................................................................. (164)   第 6 章 组件开发实战...................................................................................................................... (167) 6.1 三种组件开发方法 .................................................................................................................. (167) 6.1.1 继承、聚合和子类化 .................................................................................................. (167) 6.1.2 接口、虚方法和辅助类的选择 .................................................................................. (169) 6.2 文件拖放监视器 ...................................................................................................................... (169) 6.2.1 文件拖放原理 .............................................................................................................. (169) 6.2.2 文件拖放实例 .............................................................................................................. (170) 6.2.3 组件封装...................................................................................................................... (171) 6.3 托盘组件 .................................................................................................................................. (175) 6.3.1 装入托盘图标 .............................................................................................................. (175) 6.3.2 在应用程序最小化时去掉状态栏的图....................................................................... (177)
          精要 ·4· 6.3.3 给托盘图标增加接收鼠标消息功能........................................................................... (179) 6.3.4 处理鼠标消息 .............................................................................................................. (181) 6.3.5 显示动画图标 .............................................................................................................. (182) 6.3.6 设置程序的自动启动功能 .......................................................................................... (182) 6.3.7 组件封装...................................................................................................................... (183) 6.4 自动下拉的 TComboBox......................................................................................................... (190) 6.5 开发数据敏感控件 .................................................................................................................. (195) 6.5.1 数据敏感原理 .............................................................................................................. (196) 6.5.2 开发日期敏感控件 ...................................................................................................... (196) 6.6 开发聚合组件 .......................................................................................................................... (203) 6.6.1 开发 LabelDBDatePicker............................................................................................. (203) 6.6.2 加强 LabelDBDatePicker............................................................................................. (206) 6.7 开发图形图像控件 .................................................................................................................. (211) 6.8 开发 QuickReport 组件............................................................................................................ (218) 第 7 章 组件开发相关工作............................................................................................................. (225) 7.1 包和包编译指令 ...................................................................................................................... (225) 7.2 创建组件图标 .......................................................................................................................... (226) 7.3 属性编辑器 .............................................................................................................................. (227) 7.4 组件编辑器 .............................................................................................................................. (231) 第 8 章 常用函数和过程 ................................................................................................................. (235)   8.1 数据类型转化类 ...................................................................................................................... (235) 8.1.1 数值和字符串的相互转化 .......................................................................................... (235) 8.1.2 整数和字符串的相互转化 .......................................................................................... (236) 8.1.3 实数和字符串的相互转化 .......................................................................................... (236) 8.1.4 实数子类型的相互转化 .............................................................................................. (237) 8.1.5 布尔类型和字符串的相互转化 .................................................................................. (237) 8.2 字符串处理类 .......................................................................................................................... (237) 8.2.1 字符串的分类 .............................................................................................................. (240) 8.2.2 和字符串相关的类 ...................................................................................................... (241) 8.3 流处理类 .................................................................................................................................. (245) 8.4 内存管理、程序流程控制类................................................................................................... (250) 8.4.1 内存管理...................................................................................................................... (250)
                                       精要 ·5· 8.4.2 程序流程控制 .............................................................................................................. (251) 8.5 文件操作类 .............................................................................................................................. (252) 8.5.1 使用文件句柄进行 I/O 处理 ....................................................................................... (252) 8.5.2 使用 Pascal 文件变量进行 I/O 处理 ........................................................................... (253) 8.5.3 面向对象文件 I/O 处理............................................................................................... (255) 8.5.4 文件属性操作 .............................................................................................................. (255) 8.5.5 其他函数和方法 .......................................................................................................... (256) 8.6 日期时间类 .............................................................................................................................. (258) 8.6.1 获取/合成日期/时间.................................................................................................... (258) 8.6.2 日期/时间和字符串的转换 ......................................................................................... (259) 8.6.3 日期/时间的运算 ......................................................................................................... (259) 8.7 VCL 类 ..................................................................................................................................... (260) 8.7.1 Classes 单元 ................................................................................................................. (260) 8.7.2 Controls 单元 ............................................................................................................... (262) 8.7.3 Dialogs 单元................................................................................................................. (262) 8.8 位运算类 .................................................................................................................................. (264) 8.9 图形图像类 .............................................................................................................................. (266) 第 9 章 高级开发技巧...................................................................................................................... (268) 9.1 自定义窗口过程 ...................................................................................................................... (268) 9.2 自定义消息及其替代方法....................................................................................................... (270) 9.3 自定义系统惟一消息 .............................................................................................................. (272) 9.4 新颖的类工厂 .......................................................................................................................... (275) 9.5 使用对象库 .............................................................................................................................. (281) 9.6 非发布(published)数据的持久化 ....................................................................................... (287) 9.7 使用回调函数 .......................................................................................................................... (288) 9.8 使用递归算法 .......................................................................................................................... (290) 9.9 编写 NT 服务程序 ................................................................................................................... (294) 9.10 编写只能惟一运行的程序..................................................................................................... (295) 9.11 字段类型全家福 .................................................................................................................... (298) 9.12 获取数据库结构信息 ............................................................................................................ (300) 9.13 深入使用 TCanvas ................................................................................................................. (301) 9.14 指针列表类的使用 ................................................................................................................ (308) 9.15 结构化存储技术 .................................................................................................................... (312)  
          精要 ·6· 9.16 挂钩技术 ................................................................................................................................ (321) 9.17 TRichEdit 高级开发............................................................................................................... (327) 9.18 用 TTreeView 分析数据表的结构......................................................................................... (334) 9.19 SQL 语句分析器.................................................................................................................... (339) 9.20 剪贴板高级编程 .................................................................................................................... (344) 第 10 章 综合例子——使用 Socket 传输多个文件.............................................................. (350) 10.1 Socket 简介 ............................................................................................................................ (350) 10.2 TServerSocket 和 TClientSocket............................................................................................ (351) 10.3 设计通讯协议 ........................................................................................................................ (354) 10.4 实现服务端 ............................................................................................................................ (357) 10.5 实现客户端 ............................................................................................................................ (367) 10.6 组件封装 ................................................................................................................................ (374) 10.7 自动下载技术在项目中的应用............................................................................................. (391)  
 第 1 章 关于 Delphi 与本书 第 1 章 关于 Delphi 与本书 在一本书的开头,总应该说点什么,我也不能脱离俗套。既然是俗套,或许也的确是必要的。黑 格尔不是说过:存在即合理。 既然要说,就得说点有价值的,如果全是废话、大话、空话,就难免遭人唾骂。 在本章里,我想谈谈两个方面的话题: (1) 我对 Delphi 的一些认识。 (2) 这本书的特点。 1.1 Delphi 是什么 1.1 Delphi 是什么 这一节希望读者朋友对 Delphi 有一个总体的认识,包括其发展历史、特点。无论是在网络论坛、 办公室,还是在技术座谈会上,时常有人询问“Delphi 有没有前途”、“我该选择.NET、Java 还是 Delphi”、 “Delphi 的旗帜还能打多久”之类的问题,即使是正在使用 Delphi 的朋友,也常常被这样的问题困扰。 本节不指望能正面回答这些问题,但是希望能给出一些理由让困惑的朋友们平静下来,从而将时间和 精力放到更重要的事情上去。 1.1.1 Delphi 的历史 在 DOS 时代,程序员可选择的开发工具很少:要么是易用但低效的 BASIC 语言,要么是高效但 难用的汇编语言。即使到了 Windows 3.X 时代,仍然是两难选择:要么是容易使用但功能十分有限的 Visual BASIC,要么是强大但难以使用的 C/C++。 但是到了 1995 年,情况发生了很大变化。那就是 Delphi 1.0 在 Borland 公司诞生了。Delphi 1.0 运 行在 Windows 3.X 平台上,以 Object Pascal(面向对象的 Pascal,从 Pascal 发展而来)为开发语言,它 提供了一种全新的 Windows 程序开发方法:可视化的开发环境、真编译后的可执行程序、DDL 和支持 数据库软件开发。Delphi 1.0 是第一个综合了可视化开发技术、优化的源代码编译器和可扩展的数据库 访问引擎的 Windows 平台开发工具。Delphi 1.0 奠定了 RAD(Rapid Application Development,快速应 用程序开发)的概念。 尽管在 Delphi 3 开发前后,著名的 Delphi 首席设计师 Anders Hejlsberg(第一个 Turbo Pascal 编译器的作者)、首席技术总裁 Paul Gross 离开 Borland 公司去了 Microsoft 公司,并且在整个的 Delphi 发展过程中,Borland 公司也出现了一些重大决策失误,但是 Delphi 仍然拥有全世界众多的爱好者 和使用者。
分享到:
收藏