第一部分 Delphi部件开发编程基础 1
第1章 Delphi的Object Pascal参考 1
1.1 程序和库单元 1
1.1.1 程序结构和句法 2
1.1.2 库单元结构和句法 2
1.1.3 uses子句 3
1.2 Delphi句法基础 6
1.2.1 基本句法元素 6
1.2.2 注释和编译指令 9
1.2.3 表达式 9
1.2.4 声明和语句 11
1.2.5 模块及其作用范围 14
1.3 Delphi的数据类型、变量和常量 15
1.3.1 数据类型 15
1.3.2 变量 25
1.3.3 常量 25
1.4 过程和函数 26
1.4.1 过程和函数的声明 26
1.4.2 过程和函数参数 28
1.4.3 过程和函数的调用 29
1.4.4 过程和函数的重载 29
1.5 类和对象 30
1.5.1 类类型 31
1.5.2 类的字段 33
1.5.3 类的属性 34
1.5.4 类的方法 35
1.5.5 类的引用 35
1.5.6 类的异常 37
1.5.7 对象接口 38
1.6 动态链接库和包 38
1.6.1 动态链接库 38
1.6.2 包 41
第2章 Delphi部件开发基本方法 43
2.1 Delphi部件开发概述 43
2.1.1 部件的定义及特征 43
2.1.2 创建部件的途径 44
2.1.3 测试未安装的部件 49
2.2 创建部件属性 50
2.2.1 属性的类型 51
2.2.2 属性的创建 51
2.2.3 创建数组属性 58
2.2.4 重用和重声明属性 59
2.3 创建部件方法 61
2.3.1 创建方法的原则 61
2.3.2 声明方法 62
2.3.3 实现方法 63
2.3.4 方法绑定 64
2.3.5 方法的重载 67
2.3.6 构造函数和析构函数 68
2.4 创建部件事件 70
2.4.1 事件的基本概念 70
2.4.2 实现标准事件 72
2.4.3 自定义事件 74
2.5 消息处理 77
2.5.1 消息处理系统原理 77
2.5.2 改变消息处理行为 78
2.5.3 创建新的消息 80
2.6 异常处理 82
2.6.1 try…except语句 83
2.6.2 异常的嵌套 85
2.6.3 try…finally语句 86
2.7 使部件在设计时可见 86
2.7.1 注册部件 87
2.7.2 添加部件面板上的位图 89
2.7.3 提供部件帮助 89
2.7.4 添加属性编辑器 89
2.7.5 添加部件编辑器 90
2.7.6 编译部件成为包 94
第3章 Delphi基本VCL类库剖析 96
3.1 VCL类特征、功能及结构 96
3.1.1 VCL类特征及其作用 96
3.1.2 VCL类结构 97
3.2 TObject类剖析 98
3.2.1 TObject类概述 98
3.2.2 TObject方法 99
3.3 TPersistent类剖析 102
3.3.1 TPersistent类概述 102
3.3.2 TPersistent类方法及其功能描述 103
3.4 TComponent类剖析 104
3.4.1 TComponent概述 104
3.4.2 TComponent属性 105
3.4.3 TComponent方法 107
3.5 TControl类剖析 112
3.5.1 TControl类概述 112
3.5.2 TControl类属性 112
3.5.3 TControl类方法 120
3.5.4 TControl类事件 127
3.6 TGraphicControl类属性、方法 129
3.6.1 TGraphicControl概述 129
3.6.2 TGraphicControl类属性 129
3.6.3 TGraphicControl类方法 131
3.7 TWinControl类属性、方法及事件 132
3.7.1 TWinControl类概述 132
3.7.2 TWinControl类属性 133
3.7.3 TWinControl类方法 137
3.7.4 TWinControl类事件及其功能描述 144
第4章 开发属性编辑器 147
4.1 TPropertyEditor类剖析 147
4.1.1 TPropertyEditor类属性 147
4.1.2 TPropertyEditor类方法 149
4.2 开发属性编辑器方法 156
4.2.1 继承属性编辑器对象 157
4.2.2 编辑文本属性 159
4.2.3 将属性作为一个整体来编辑 159
4.2.4 描述编辑器特性 161
4.2.5 注册属性编辑器 162
4.3 属性编辑器开发编程实例分析 162
4.3.1 TClassProperty类剖析 163
4.3.2 图像对象属性编辑器 164
第二部分 Delphi标准控件扩展开发 173
第5章 定制TwinControl直接派生控件的扩展控件 173
5.1 THeaderControl控件剖析 173
5.1.1 THeaderControl属性分析 173
5.1.2 THeaderControl类方法 174
5.1.3 THeaderControl类事件 175
5.2 TProgressBar控件剖析 177
5.2.1 TProgressBar属性分析 177
5.2.2 TProgressBar类方法 178
5.3 TScrollBar控件剖析 178
5.3.1 TScrollBar属性分析 178
5.3.2 TScrollBar类方法 180
5.3.3 TScrollBar类事件 181
5.4 TTabSheet控件剖析 182
5.4.1 TTabSheet属性分析 182
5.4.2 TTabSheet类方法 183
5.4.3 TTabSheet类事件 184
5.5 TStatusBar控件剖析 184
5.5.1 TStatusBar属性分析 185
5.5.2 TStatusBar类方法 185
5.5.3 TStatusBar类事件 186
5.6 TTrackBar控件剖析 186
5.6.1 TTrackBar属性分析 187
5.6.2 TTrackBar类方法 189
5.6.3 TTrackBar类事件 190
5.7 TWinControl直接派生控件扩展开发实例分析 190
5.7.1 TDFSStatusBar属性分析 190
5.7.2 TDFSStatusBar方法分析 191
5.7.3 TDFSStatusBar事件分析 193
第6章 定制按钮、文本框、列表框、组合框和微调器扩展控件 208
6.1 TButtonControl类剖析 208
6.1.1 TButtonControl抽象类剖析 208
6.1.2 TButtonControl抽象类的派生类 209
6.1.3 TButton类控件剖析 210
6.2 TCustomEdit类剖析 212
6.2.1 TCustomEdit抽象类剖析 212
6.2.2 TCustomEdit抽象类的派生类 216
6.3 TCustomListBox类剖析 217
6.3.1 TCustomListBox抽象类剖析 218
6.3.2 TCustomListBox抽象类的派生类 222
6.4 TCustomComboBox类剖析 224
6.4.1 TCustomComboBox抽象类剖析 224
6.4.2 TCustomComboBox抽象类的派生类 229
6.5 TCustomUpDown类剖析 229
6.5.1 TCustomUpDown抽象类剖析 229
6.5.2 TCustomUpDown抽象类的派生类 232
6.6 列表框控件扩展开发实例分析 232
6.6.1 TDDListBox控件属性 232
6.6.2 TDDListBox类方法 233
6.6.3 TDDListBox类事件 236
第7章 定制列表视图、树视图、页面和热键扩展控件 252
7.1 TCustomListView类剖析 252
7.1.1 TCustomListView抽象类剖析 252
7.1.2 TCustomListView抽象类的派生类 261
7.2 TCustomTreeView类剖析 261
7.2.1 TCustomTreeView抽象类剖析 262
7.2.2 TCustomTreeView抽象类的派生类 266
7.3 TCustomTabControl类剖析 266
7.3.1 TCustomTabControl抽象类剖析 266
7.3.2 TCustomTabControl抽象类的派生类 268
7.4 TCustomHotKey类剖析 272
7.4.1 TCustomHotKey抽象类剖析 272
7.4.2 TCustomHotKey抽象类的派生类 274
7.5 树视图扩展控件开发实例分析 274
7.5.1 TSystemFolderList控件属性 274
7.5.2 TSystemFolderList控件方法 275
7.5.3 TSystemFolderList控件事件 280
第8章 定制其他用户控件 297
8.1 TCustomControl类剖析 297
8.1.1 TCustomControl抽象类剖析 297
8.1.2 TCustomControl抽象类的派生类 298
8.2 TScrollingWinControl类剖析 305
8.2.1 TScrollingWinControl抽象类剖析 305
8.2.2 TScrollingWinControl抽象类的派生类 308
8.3 定制用户控件实例分析 308
8.3.1 TColorButton控件属性 308
8.3.2 TColorButton控件方法 310
8.3.3 TColorButton控件事件 312
8.3.4 测试TColorButton控件 324
第9章 非窗口控件类剖析及其控件开发 330
9.1 TCustomLabel抽象类剖析 330
9.1.1 TCustomLabel抽象类剖析 330
9.1.2 TCustomLabel抽象类的派生类 334
9.2 TGraphicControl直接派生控件剖析 334
9.2.1 TBevel类控件剖析 334
9.2.2 TImage类控件剖析 335
9.2.3 TPaintBox类控件剖析 337
9.2.4 TShape类控件剖析 338
9.2.5 TSpeedButton类控件剖析 340
9.2.6 TSplitter类控件剖析 343
9.3 非窗口控件扩展开发实例分析 347
9.3.1 TDigitsPanel控件 347
9.3.2 TDigitsPanel控件应用程序分析 354
第三部 数据库部件开发 359
第10章 Delphi数据库基础 359
10.1 数据库系统概述 359
10.1.1 数据库管理系统 360
10.1.2 数据库应用程序 360
10.2 Delphi的数据库应用程序 361
10.2.1 数据库类型 361
10.2.2 数据库相关概念 363
10.2.3 数据库应用程序结构 365
10.3 建立与数据库的连接 370
10.3.1 持久和临时数据库部件 371
10.3.2 控制数据库的连接 371
10.3.3 数据库和会话部件的交互 371
10.3.4 在数据模块中使用数据库部件 372
10.4 使用数据集部件 372
10.4.1 打开和关闭数据集 372
10.4.2 设置数据集状态 372
10.4.3 导航数据集 374
10.4.4 搜索数据集 374
10.4.5 使用过滤器显示和编辑数据 376
10.4.6 修改数据集的数据 379
10.5 使用数据控件 382
10.5.1 建立与数据集部件的连接 383
10.5.2 编辑和更新数据 383
10.5.3 控制数据显示 385
10.5.4 使能响应鼠标、键盘和时钟事件 386
第11章 开发数据访问部件 387
11.1 TDatabase部件剖析 387
11.1.1 TDatabase类属性分析 387
11.1.2 TDatabase类方法分析 390
11.1.3 TDatabase类事件分析 392
11.2 TSession部件剖析 392
11.2.1 TSession类属性分析 393
11.2.2 TSession类方法分析 396
11.2.3 TSession类事件分析 398
11.3 TDataSet类部件剖析 398
11.3.1 TDataSet类属性分析 399
11.3.2 TDataSet类方法分析 403
11.3.3 TDataSet类事件分析 411
11.4 TDataSource部件剖析 413
11.4.1 TDataSource类属性分析 413
11.4.2 TDataSource类方法分析 415
11.4.3 TDataSource类事件分析 415
11.5 开发数据访问部件实例分析 416
11.5.1 开发HKMemTab部件 417
11.5.2 开发THKMemTab部件的数据库应用程序 433
第12章 数据控件剖析及其开发 438
12.1 TDBGrid控件剖析 438
12.1.1 TTDBGrid类属性分析 439
12.1.2 TDBGrid类方法分析 440
12.1.3 TDBGrid类事件分析 441
12.2 TDBNavigator控件剖析 442
12.2.1 TDBNavigator类属性分析 443
12.2.2 TDBNavigator类方法分析 444
12.2.3 TDBNavigator类事件分析 445
12.3 TDBComboBox控件剖析 445
12.3.1 TDBComboBox类属性分析 445
12.3.2 TDBComboBox类方法分析 447
12.3.3 TDBComboBox类事件分析 448
12.4 TDBImage控件剖析 448
12.4.1 TDBImage类属性分析 448
12.4.2 TDBImage类方法分析 449
12.5 TDBCtrlGrid控件剖析 450
12.5.1 TTDBCtrlGrid类属性分析 451
12.5.2 TDBCtrlGrid类方法分析 452
12.5.3 TDBCtrlGrid类事件分析 453
12.6 数据控件开发实例分析 454
12.6.1 开发DBNavPlus控件 454
12.6.2 测试DBNavPlus控件 459
第四部分 开发数值算法部件 463
第13章 开发数值计算部件 463
13.1 数值计算部件开发概述 463
13.2 矩阵部件开发编程 465
13.2.1 TMatrix类属性 465
13.2.2 TMatrix类方法 466
13.2.3 TMatrix的全局函数 468
13.3 矩阵浏览器控件开发编程 482
13.3.1 TMatrixViewer类属性 482
13.3.2 TMatrixViewer类方法 483
13.3.3 TMatrixViewer类事件 484
13.4 矩阵及矩阵浏览器部件应用程序开发编程 489
第14章 开发纠错与加密编码部件 497
14.1 CRC检错码部件的开发 497
14.1.1 CRC纠错码原理 497
14.1.2 32位CRC纠错码部件TPSPCrc32的开发 498
14.1.3 TPSPCrc32部件的测试程序 505
14.2 加密部件的开发 507
第15章 开发模糊逻辑部件 523
15.1 模糊逻辑与模糊推理 523
15.2 模糊逻辑部件包的开发 526
15.2.1 TCustomFuzzy部件 527
15.2.2 TFuzzyFication部件 529
15.2.3 TDefuzzyFication部件 530
第五部分 开发其他自定义部件 545
第16章 开发图形绘制与图像处理部件 545
16.1 B样条曲线绘制部件 545
16.1.1 B样条曲线原理简介 545
16.1.2 TSplines部件的基本数据结构 549
16.1.3 TSpline部件的属性和方法 552
16.1.4 TSpline部件的测试程序 562
16.2 图像渐变部件 565
16.2.1 图像渐变技术 565
16.2.2 TFade部件的属性 565
16.2.3 TFade部件的方法 568
第17章 开发工控界面部件 586
17.1 工控界面概述 586
17.2 指示灯部件的开发 587
17.2.1 TLed部件的属性 587
17.2.2 TLed部件的方法 588
17.3 开关部件的开发 602
17.3.1 TSwitch部件开发概述 602
17.3.2 TSwitch部件的属性 602
17.3.3 TSwitch部件的方法 603
第18章 开发网络部件 613
18.1 计算机网络概述 613
18.2 网络部件剖析 614
18.2.1 TClientSocket部件分析 614
18.2.2 TWebBrowser部件分析 619
18.2.3 TPageProducer部件分析 625
18.2.4 TDataSetPageProducer部件分析 629
18.3 IPX/SPX网络协议简介 630
18.4 网络部件开发实例分析 634
18.4.1 TIPX部件属性 634
18.4.2 TIPX部件方法 636
18.4.3 IPX类事件 654
18.4.4 ESocketError类分析 655