第1章 面向对象程序设计 1
1.1面向对象程序设计概念 1
1.1.1结构化程序设计方法 1
1.1.2面向对象的程序设计方法 2
1.1.3面向对象程序设计的基本概念 2
1.2类 3
1.2.1类的定义 3
1.2.2保护方式 3
1.2.3类实例化 4
1.2.4类操作符 5
1.3方法 5
1.3.1一般方法 5
1.3.2构造方法 6
1.3.3析构方法 6
1.3.4类方法 7
1.3.5隐含参数Self 7
1.4继承和多态 8
1.4.1继承 8
1.4.2覆盖 9
1.4.3抽象类 10
1.4.4多态 11
1.4.5共同祖先TObject 12
1.5对象 13
1.6属性 14
1.6.1属性定义 14
1.6.2扩展赋值语句 16
1.7消息 17
1.7.1消息机制 17
1.7.2发送消息 19
1.7.3处理消息 19
1.7.4用户自定义消息 20
习题 24
第2章Delphi自定义组件的开发 25
2.1选择祖先类 25
2.1.1公共祖先类 25
2.1.2现有的组件 26
2.1.3组件模板 26
2.1.4选择祖先类的建议 26
2.2建立组件框架 26
2.2.1自动建立组件框架 26
2.2.2手工建立组件框架 28
2.3加入属性 28
2.3.1加入简单型的属性 29
2.3.2加入枚举型的属性 30
2.3.3加入集合型的属性 30
2.3.4加入对象型的属性 31
2.3.5加入数组型的属性 32
2.3.6公开继承的属性 33
2.3.7给出属性的默认值 34
2.4加入方法 34
2.4.1方法的可见性 34
2.4.2避免内部相关性 35
2.4.3给方法命名 35
2.4.4声明和实现方法 35
2.4.5加入虚拟方法 36
2.4.6加入动态方法 36
2.4.7加入抽象方法 36
2.5加入事件 37
2.5.1事件加入过程 37
2.5.2继承事件 38
2.5.3创建事件 38
2.5.4注册组件 42
习题 50
第3章Delphi异常处理与调试 51
3.1Delphi异常处理 51
3.1.1异常处理的意义 51
3.1.2错误类型 52
3.2 Delphi异常类 54
3.2.1运行库异常类(RTL Exception) 54
3.2.2对象异常类 57
3.2.3组件异常类 58
3.3 Delphi异常处理机制 59
3.3.1异常响应与try…except语句 60
3.3.2异常保护与try…finally语句 61
3.3.3异常的重引发和处理嵌套 63
3.3.4定义自己的异常 64
3.3.5利用异常响应编程 68
3.4 Delphi调试器 70
3.4.1准备调试 70
3.4.2设置调试器的选项 71
3.5控制程序的运行 71
3.5.1单步执行 71
3.5.2跟踪执行 72
3.5.3跳过一段代码 73
3.5.4全速执行剩余的代码 73
3.5.5返回到执行点 73
3.5.6暂停运行 73
3.5.7重新开始运行 73
3.5.8命令行参数 74
3.6断点 74
3.6.1源代码断点 74
3.6.2机器指令断点 75
3.6.3数据断点 76
3.6.4模块断点 76
3.6.5指定遇到断点时的行为 76
3.6.6断点列表窗口 77
3.6.7删除断点 78
3.6.8设置断点的属性 78
3.6.9禁止和允许断点 78
3.7监视表达式的值 78
3.7.1观察窗口 79
3.7.2计算和修改表达式的值 80
3.7.3计算提示 81
3.7.4 Inspector窗口 81
3.7.5查看局部变量的值 82
3.8调试的有关窗口 82
3.8.1 CPU窗口 82
3.8.2 FPU窗口 83
3.8.3线程状态窗口 83
3.8.4 Call Stack窗口 84
3.8.5模块窗口 85
3.8.6事件记录窗口 85
3.9特殊程序调试 86
3.9.1调试动态链接库 86
3.9.2远程调试 86
3.9.3多进程调试 88
3.9.4分布式调试 88
3.9.5其他调试手段 89
习题 90
第4章 动态键接库(DLLs)编程 91
4.1动态链接库概述 91
4.1.1 Windows系统的动态链接库 92
4.1.2为什么使用DLL 92
4.1.3系统DLL的含义 93
4.1.4 DLL与EXE文件的区别 94
4.1.5 DLL编写规则 94
4.2在Delphi中DLLs的编写 94
4.2.1编写一般DLLs的步骤 95
4.2.2动态链接库中的标准指示 98
4.2.3 DLLs中的变量和段 98
4.2.4 DLLs中的运行期间错误和处理 98
4.2.5库初始化代码的编写 99
4.2.6 DLL中重载函数问题 101
4.2.7从DLL中输出字符串 101
4.3在Delphi中DLLs的调用 104
4.3.1调用DLL方式 104
4.3.2静态调用 105
4.3.3动态调用 107
4.4利用DLLs实现窗体重用 110
4.4.1利用DLLs实现窗体重用的一般步骤 110
4.4.2使用DLL模态窗体 111
4.4.3 DLL中的非模态窗体 111
4.5利用DLLs实现数据传输 116
4.5.1 DLLs中的全局内存 116
4.5.2利用DLLs实现应用程序间的数据传输 116
4.6 DLL与Delphi组件包 118
习题 120
第5章Windows API与资源调用 121
5.1 Windows API 121
5.1.1 Windows API简介 121
5.1.2在Delphi中调用Windows API函数 122
5.1.3调用Windows API的实例 123
5.2资源 128
5.2.1 Windows资源 128
5.2.2图标资源 130
5.2.3鼠标指针资源 134
5.2.4位图资源 137
5.2.5字符串资源 139
习题 142
第6章Delphi图形及多媒体应用 143
6.1绘图组件 143
6.1.1 Shape组件 143
6.1.2 PaintBox组件 144
6.1.3画布对象 144
6.1.4 Image组件 147
6.1.5绘制图元文件 150
6.1.6打印图形 152
6.2图形列表组件 153
6.2.1 TreeView组件 153
6.2.2 ListView组件 154
6.3图形栅格组件 158
6.3.1 StringGrid组件 158
6.3.2 DrawGrid组件 158
6.3.3 ColorGrid组件 159
6.4图形日历组件 160
6.4.1 DateTimePicker组件 160
6.4.2 MonthCalendar组件 161
6.4.3 Calendar组件 161
6.5多媒体组件 162
6.5.1 MediaPlayer组件 162
6.5.2 Animate组件 163
习题 165
第7章 多线程 166
7.1多线程概述 166
7.1.1多线程的概念 166
7.1.2使用多线程的优缺点 167
7.2多线程编程 167
7.2.1创建线程对象 167
7.2.2线程的同步 169
7.2.3设置线程的优先级 170
7.2.4挂起和唤醒 171
7.2.5缓存线程对象 172
7.2.6线程终止 173
7.3多线程深入 179
7.3.1线程安全 179
7.3.2线程局部变量 180
7.3.3锁定和阻塞 182
7.3.4依赖另一个线程的执行结果 183
7.3.5一个多线程排序程序 185
习题 190
第8章 文件操作 191
8.1文件操作命令 191
8.1.1文件的类型 191
8.1.2文件的定义 192
8.1.3文件管理命令 192
8.1.4文本文件命令 193
8.1.5输入输出命令 193
8.2文本文件 194
8.2.1打开文本文件 194
8.2.2关闭文本文件 194
8.2.3写入文本文件 195
8.2.4读取文本文件 195
8.3非文本文件 196
8.3.1类型文件 196
8.3.2无类型文件 200
8.4文件系统 200
8.4.1文件系统组件 200
8.4.2文件控制单元 203
8.5文件流 206
8.5.1文件流命令 206
8.5.2文件流的使用 207
习题 212
第9章Delphi网络组件编程 213
9.1计算机网络概述 213
9.2 Delphi 7支持的网络组件 214
9.2.1 Indy组件介绍 214
9.2.2 Indy Client组件页 215
9.2.3 IndyServer组件页 216
9.2.4 Indy Misc(Indy Miscellaneous)组件页 216
9.2.5 Indy Intercepts组件页 217
9.2.6 Indy I/O Handlers组件页 218
9.3 Indy组件基本工作原理 220
9.3.1 Indy组件是阻塞套接字 220
9.3.2 Indy组件与其他套接字组件不同之处 221
9.4 Indy常用组件的应用 222
9.4.1 IdTCPClient组件和IdTCPServer组件的使用 222
9.4.2 IdDayTime组件和IdDayTimeServer组件的使用 226
9.4.3 IdEcho组件和IdEchoServer组件的使用 228
9.4.4 IdTime组件和IdTimeServer组件的使用 229
9.4.5 IdTelnet组件和IdTelnetServer组件的使用 230
9.4.6 IdFinger组件和IdFingerServer组件的使用 233
9.5 Indy中FTP组件的应用 235
9.5.1 FTP文件传输协议基本概念 235
9.5.2 FTP服务器的设计 235
9.6 Indy邮件组件的应用 239
9.6.1 IdPOP3组件的使用 239
9.6.2 IdSmtp组件的使用 242
9.7 IdHTTP组件的应用 246
9.7.1 IdHTTP组件的方法 246
9.7.2 IdHTTP组件的属性 250
9.8 Indy中的UDP组件 254
9.8.1 UDP协议特点 254
9.8.2 IdUDPClient和IdUDPServer组件 255
9.8.3 IdDayTimeUDP和IdDayTimeUDPServer组件 258
9.8.4 IdTimeUDP和IdTimeUDPServer组件 259
9.8.5 IdEchoUDP和IdEchoUDPServer组件 259
习题 260
第10章 实训 261
10.1实训1面向对象程序设计 261
10.2实训2自定义组件设计 263
10.3实训3异常处理与调试 273
10.3.1 Delphi异常处理机制 273
10.3.2 Delphi调试 275
10.4实训4动态链接库编程 278
10.5实训5 Windows API与资源 282
10.6实训6图形及多媒体应用 284
10.6.1 Delphi绘图组件应用 284
10.6.2 Delphi图形组件应用 288
10.7实训7多线程设计 296
10.8实训8文件操作 300
10.8.1文件名操作 300
10.8.2文件读写操作 304
10.9实训9网络编程 307