Delphi 7程序设计与开发技术大全PDF电子书下载
- 电子书积分:21 积分如何计算积分?
- 作 者:求是科技编著
- 出 版 社:北京:人民邮电出版社
- 出版年份:2004
- ISBN:7115117209
- 页数:784 页
第1章 Delphi概述 1
1.1Delphi介绍 1
1.2Delphi7的主要特性 2
1.2.1熟悉语言特性 2
1.2.2丰富的组件 2
1.2.3功能强大的数据库访问技术 3
1.2.4便捷的Internet编程技术 3
1.3Delphi7的安装与卸载 3
1.3.1Delphi7的安装 3
1.3.2Delphi7的卸载 6
第2章 Delphi7的集成开发环境 8
2.1集成开发环境中的窗口元素 8
2.1.1对象编辑器 8
2.1.2工程管理器 8
2.1.3代码编辑器 9
2.1.5调试器 11
2.1.4对象浏览器 11
2.2集成开发环境中的操作界面 13
2.2.1主菜单 13
2.2.2工具栏 18
2.2.3组件面板 19
2.3定制集成开发环境 19
2.3.1定制编程环境 19
2.3.3定制工具栏 20
2.3.2定制代码编辑器 20
2.3.4定制组件面板 21
2.3.5定制窗口位置 22
2.3.6保存当前定制 22
2.4附属工具 23
2.4.1DatabaseDesktop 23
2.4.2数据库引擎(BDEAdministrator) 29
2.4.3SQLExplorer 30
2.4.4DataPump 31
2.4.5ImageEditor 32
2.5使用帮助系统 34
3.1创建一个简单的Delphi程序 35
第3章 应用程序框架 35
3.2构成Delphi工程的文件 38
3.2.1工程文件(.dpr) 38
3.2.2单元文件(.pas) 38
3.2.3窗体文件(.dfm) 40
3.2.4资源文件(.res) 41
3.2.5工程选项及桌面配置文件(.dof) 42
3.2.6中间编译单元(.dcu) 42
3.2.7备份文件(.~pas) 42
3.2.8包文件(.dpk) 42
3.3Delphi项目的框架类 42
3.3.1TForm类 43
3.3.2TApplication类 45
3.4Delphi的公共体系结构 48
3.4.1Delphi固有的体系结构 48
3.3.3TScreen类 48
3.4.2多文档应用程序 49
3.4.3数据库模块窗体 50
3.4.4网络模块窗体 51
3.5Delphi工程的常见管理方法 51
3.5.1工程的目录结构 51
3.5.2专用单元存放公共代码 52
3.5.3管理多个工程 52
4.1.1ObjectPascal语言编写环境 53
第4章 ObjectPascal语言 53
4.1语言基础 53
4.1.2注释语句 54
4.1.3标识符 54
4.1.4保留字和指令字 55
4.1.5数据类型与定义变量 56
4.1.6ObjectPascal的运算符 64
4.1.7语句 65
4.1.8过程与函数 69
4.1.9规范化命名 74
4.2面向对象的特性 75
4.2.1类和对象 75
4.2.2类的定义 75
4.2.3类的封装 76
4.2.4类的继承 76
4.2.5构造与析构 77
4.2.6方法 80
4.2.7多态性 82
4.2.8类运算符 85
4.2.9类方法和类引用 87
4.3结构化异常处理 89
4.3.1Try...Except语句和Try...Finally语句 89
4.3.2Raise语句 91
4.3.3异常类 92
4.4方法与技巧 92
4.4.1设置代码模板 92
4.4.2设置提示信息 93
5.1.1VCL类库结构 94
第5章 使用VCL组件编程 94
5.1可视化类库(VCL) 94
5.1.2组件运行机制 95
5.2VCL常用基类 99
5.2.1TPersistent类 99
5.2.2TComponent类 99
5.2.3TControl类 100
5.2.4TWinControl类 100
5.2.5TGraphicControl类 101
5.2.6TCustomControl类 101
5.3Delphi组件 102
5.3.1Delphi组件的优势 102
5.3.2组件的分类 102
5.3.3组件的属性、事件和方法 103
5.3.4组件的基本操作 106
5.4使用Delphi组件编程 107
5.4.2设置窗体 108
5.4.1示例功能 108
5.4.3编写代码 110
第6章 常用VCL组件的使用 112
6.1简单组件 112
6.1.1标签组件(TLabel) 112
6.1.2按钮组件(TButton) 115
6.1.3复选框组件(TCheckBox) 116
6.1.4单选框组件(TRadioButton) 117
6.1.5下拉列表组件(TComboBox) 117
6.1.6窗格组件(TPanel) 120
6.1.7滚动条组件(TScrollBar) 121
6.1.8单选分组框组件(TRadioGroup) 123
6.1.9简单组件编程示例 124
6.2文本编辑组件 126
6.2.1单行编辑框组件(TEdit) 127
6.2.2多行编辑框组件(TMemo) 129
6.2.3RTF编辑组件(TRichEdit) 130
6.2.4格式输入组件(TMaskEdit) 131
6.2.5文本编辑组件编程示例 133
6.3分组组件 139
6.3.1Tab组件(TTabControl) 139
6.3.2多页组件(TPageControl) 141
6.3.3Tab表组件(TTabSheet) 143
6.3.4分组组件编程示例 145
6.4图形显示组件 149
6.4.1图像组件(TImage) 149
6.4.2位图组件(TBitMap) 150
6.4.3图形显示组件编程示例 152
6.5对话框组件 153
6.5.1打开对话框组件(TOpenDialog) 153
6.5.2另存为对话框组件(TSaveDialog) 156
6.5.3打开图像对话框组件(TOpenPictureDialog) 156
6.5.4图像另存为对话框(TSavePictureDialog) 157
6.5.5字体对话框(TFontDialog) 157
6.5.6颜色对话框(TColorDialog) 158
6.5.7打印对话框(TPrintDialog) 159
6.5.8打印设置对话框(TPrinterSetupDialog) 160
6.5.9查找对话框(TFindDialog) 160
6.5.10替换对话框(TReplaceDialog) 161
6.5.11对话框组件编程示例 162
第7章 高级VCL组件 167
7.1窗体组件 167
7.1.1表头组件(THeaderControl) 167
7.1.2状态栏组件(TStatusBar) 169
7.1.3工具栏组件(TToolBar) 171
7.1.4酷栏组件(TCoolBar) 174
7.1.5窗体组件编程实例 175
7.2菜单组件 178
7.2.1主菜单组件(TMainMenu) 178
7.2.2弹出菜单组件(TPopMenu) 180
7.2.3菜单组件编程示例 182
7.3.1自绘栅格组件(TDrawGrid) 186
7.3表格组件 186
7.3.2字符串栅格组件(TStringGrid) 189
7.3.3表格显示组件编程示例 189
7.4列表组件 193
7.4.1列表框组件(TListBox) 193
7.4.2动作列表组件(TActionList) 196
7.4.3图像列表组件(TImageList) 198
7.4.4树型视图组件(TTreeView) 203
7.4.5列表视图组件(TListView) 207
7.4.6列表组件编程示例 212
7.5打印相关 215
7.5.1QuickReport打印组件 215
7.5.2RaveReport打印组件 217
第8章 窗体编程 218
8.1窗体的分类 218
8.1.1SDI窗体 218
8.1.2MDI窗体 219
8.2窗体的基本属性、方法和事件 222
8.1.3MPI窗体 222
8.2.1窗体的基本属性 223
8.2.2窗体的基本方法 226
8.2.3窗体的基本事件 227
8.3模式窗体与非模式窗体 230
8.3.1模式窗体 230
8.3.2非模式窗体 231
8.4窗体示例 231
第9章 事件处理 234
9.1事件的定义及作用 234
9.2常用事件 234
9.2.1键盘事件 234
9.2.2鼠标事件 235
9.3拖曳事件 235
9.4事件编程示例 237
9.4.1检测是否按下Shift、Alt或Ctrl键 237
9.4.2模拟按下键盘上的某个键 238
9.4.3限制鼠标移动的范围 247
9.4.4自定义鼠标 248
9.4.5设置光标闪烁的速度 249
9.4.6不同程序间的拖曳操作 251
第10章 文件和路径处理 253
10.1文件管理常用函数和过程 253
10.1.1文件操作常用函数和过程 253
10.1.2目录操作函数和过程 256
10.2各种文件类型的输入输出 259
10.1.3驱动器操作常用函数 259
10.2.1文本文件 260
10.2.2类型文件 261
10.2.3无类型文件 263
10.3映像内存的操作 264
10.3.1映像内存函数 265
10.3.2内存映像的步骤 266
10.3.3内存映像示例 267
10.4.1获取System目录 272
10.4目录和驱动器 272
10.4.2获取Windows目录 273
10.4.3获取当前目录 273
10.4.4获取可用驱动器信息 274
第11章 GDI和图像编程 276
11.1Delphi的绘图类 276
11.1.1画布类(TCanvas) 276
11.1.2画笔类(TPen) 282
11.1.3画刷类(TBrush) 285
11.1.4颜色类(TColor) 286
11.2画图程序 287
11.2.1界面设计 287
11.2.2代码设计 290
11.2.3菜单设计 294
11.3坐标系统和映射模式 297
11.3.4窗体坐标系 298
11.3.3屏幕坐标系 298
11.3.2逻辑坐标系 298
11.3.1设备坐标系 298
11.3.5坐标映射 299
11.3.6设置映射模式 300
11.3.7设置窗口范围 300
11.3.8映射模式示例 301
11.4图像格式处理 303
11.5.2基本字体元素 305
11.5.1Win32字体类型 305
11.5GDI字体 305
11.5.3GDI字体分类 306
11.5.4显示不同字体 307
11.5.5实际创建一种字体 307
第12章 多媒体技术 310
12.1多媒体技术概述 310
12.1.1MPC标准 310
12.1.2多媒体技术应用领域 310
12.1.3开发多媒体应用程序的工具 311
12.2特殊显示效果 312
12.2.2使用CopyRect实现特效 313
12.2.1基本原理 313
12.2.3使用BitBlt实现特效 314
12.3动画 319
12.3.1文字动画 319
12.3.2图像动画 320
12.4音频与视频 322
12.4.1WAV与MIDI文件简介 322
12.4.2AVI文件格式 324
12.4.3TMediaPlayer组件的使用 325
12.5MessageBeep()函数 328
12.6PlaySound()函数 329
12.7mciSendString()函数 330
13.1.1了解消息 333
13.1.2消息结构 333
第13章 消息处理技术 333
13.1Windows消息 333
13.1.3消息类型 334
13.1.4消息处理 335
13.1.5应用程序的消息循环 338
13.2Delphi消息处理机制 339
13.2.1消息处理函数 339
13.2.2应用程序消息 340
13.4消息和事件 341
13.4.1消息和事件的工作原理 341
13.3.1Perform()函数 341
13.3.2SendMessage()和PostMessage()函数 341
13.3发送消息 341
13.4.2消息与事件的对应关系 343
13.4.3使用Windows消息处理Delphi没有的事件 343
13.5消息处理编程示例 346
第14章 多线程编程 348
14.1线程的基础知识 348
14.1.1进程与线程关系 348
14.1.2多线程应用条件 349
14.2VCL线程对象 351
14.2.1TThread类 351
14.2.2线程函数 354
14.2.3线程的挂起与继续 355
14.2.4线程的终止与异常处理 356
14.3管理多线程 357
14.3.1线程同步技术 357
14.3.2线程优先级 358
14.4多线程示例 365
第15章 动态链接库和组件包 374
15.1动态链接库概述 374
15.1.1动态链接库的概念 374
15.1.2Windows系统的动态链接库 374
15.1.3动态链接与静态链接 375
15.1.4DLL和系统变量 376
15.1.5DLL的入口点函数 376
15.1.8DLL中的异常和运行时错误 377
15.1.7DLL中的数据 377
15.1.6DLL和内存管理 377
15.2创建和调用DLL 378
15.2.1创建DLL的基本步骤 378
15.2.2调用DLL 381
15.3在DLL中封装窗体 384
15.4使用DLL共享数据 386
15.4.1内存映射文件的概念 386
15.4.2与内存映射文件相关的函数 387
15.4.3使用内存映射文件在DLL中共享数据 389
15.5钩子函数 392
15.5.1钩子链 392
15.5.2钩子函数 392
15.5.3钩子类型 392
15.5.4与使用钩子相关的函数 394
15.5.5使用钩子函数监测所有鼠标动作的实例 395
15.6包和DLL 398
15.6.3运行时包 399
15.6.1为什么使用包 399
15.6.2与包有关的文件类型 399
15.6.4设计时包 401
15.6.5创建和编辑包 403
15.6.6配置包 407
15.6.7包集合文件 408
15.6.8使用包和DLL 409
16.1.2为什么使用组件 411
16.1.1什么是组件 411
16.1开发组件简介 411
第16章 开发新的VCL组件 411
16.1.3Delphi的组件库基础 412
16.1.4组件和类 417
16.1.5开发组件的要求 417
16.1.6如何选择新组件的基类 419
16.1.7开发新组件的基本步骤 420
16.1.8测试未安装的组件 423
16.2.1定义新类 424
16.1.9测试已安装的组件 424
16.2组件开发过程中的面向对象编程 424
16.2.2祖先、后代及类层次 425
16.2.3访问控制 425
16.2.4分派方式 426
16.2.5抽象类成员 427
16.2.6类和指针 428
16.3创建属性 428
16.3.1属性的类型 428
16.3.2发布继承的属性 428
16.3.3定义属性 428
16.3.4存储和装载属性 432
16.4创建事件 434
16.4.1事件定义 434
16.4.2怎样实现标准事件 436
16.4.3定义新事件 437
16.5.2命名方法的惯例 439
16.5创建方法 439
16.5.1避免互相依赖 439
16.5.3保护方法 440
16.5.4使方法变为虚方法 440
16.5.5声明方法 440
16.6在组件中使用图形 440
16.6.1VCL的图形接口 441
16.6.2使用Canvas 441
16.6.3使用图形工作 441
16.6.4脱屏位图(Off-ScreenBitmap) 443
16.6.5对变化作出反应 443
16.7处理消息和系统通知 444
16.7.1理解消息处理系统 444
16.7.2改变消息处理方法 445
16.7.3创建新的消息处理方法 446
16.8.1注册组件 448
16.8使组件在设计阶段可用 448
16.8.2安装组件到组件面板 450
16.8.3使组件的资源文件可用 452
16.8.4为组件设置位图 453
16.8.5为组件提供帮助 454
16.8.6增加属性编辑器 454
16.8.7加入组件编辑器 457
16.9.1创建并注册组件 460
16.9修改现存的组件:制作非自动换行的Memo组件 460
16.9.2修改组件类 461
16.10开发图形组件:制作Shape图形组件 462
16.10.1创建和注册组件 462
16.10.2发布继承的属性 462
16.10.3增加图形能力 463
16.11开发窗口控件:制作Calendar组件 468
16.11.1创建并注册组件 468
16.11.2发布继承属性 469
16.11.4重定义单元格大小 470
16.11.3改变初始值 470
16.11.5填充单元格 471
16.11.6跟踪日期 472
16.11.7导航月和年 476
16.11.8导航日期 476
16.12开发数据感知控件:制作数据感知的Calender组件 478
16.12.1制作一个数据浏览控件 478
16.12.2制作一个数据编辑控件 482
16.13.1定义组件接口 486
16.13开发非可视组件:制作Dialog组件 486
16.13.2创建和注册组件 487
16.13.3创建组件接口 487
16.13.4测试对话框组件 488
第17章 Delphi两层数据库开发 489
17.1数据库基础知识 489
17.1.1数据库的出现和发展 489
17.1.2数据库的组成 491
17.1.3数据库系统模型 492
17.1.4数据库的常用概念 494
17.1.5目前流行的数据库介绍 495
17.1.6数据库开发的一般方法 498
17.2Delphi的数据库体系结构 500
17.2.1Delphi数据库访问原理 500
17.2.2Delphi与其他数据库开发工具的比较 502
17.2.3Delphi的数据库开发优势 503
17.3Delphi支持的数据引擎 503
17.3.2ADO数据库引擎 504
17.3.1BDE数据库引擎 504
17.3.3dbExpress数据库引擎 505
17.3.4Interbase数据库引擎 506
17.4数据访问组件 506
17.4.1数据库组件 507
17.4.2数据库连接组件 512
17.4.3数据集组件 513
17.4.4数据源组件 535
17.5数据感知组件 537
17.5.1单行字符字段编辑框组件(TDBText) 538
17.5.2单行字段编辑框组件(TDBEdit) 542
17.5.3多行字段编辑框组件(TDBMemo) 545
17.5.4图像字段组件(TDBImage) 550
17.5.5字段列表框组件(TDBListBox) 551
17.5.6字段下拉列表框组件(TDBComboBox) 554
17.5.7参照字段列表框组件(TDBLookupListBox) 555
17.5.8参照字段下拉列表框组件(TDBLookupComboBox) 557
17.5.9记录导航组件(TDBNavigator) 559
17.5.10表格组件(TDBGrid) 563
17.6Delphi的其他支持 569
17.6.1DataPump 569
17.6.2DataDesktop 572
17.6.3BDE配置工具 581
17.6.4SQLExplorer实用工具 582
17.7.1BDE方式连接Access 584
17.7.2ODBC方式连接Access 584
17.7如何连接数据库 584
17.7.3ADO方式连接Access 588
17.7.4连接文本文件 590
17.8一些常用工具和数据字典的用法 591
17.8.1SQL监视器 591
17.8.2数据字典 591
18.1从桌面数据库到客户/服务器结构 593
18.1.1为什么要采用客户/服务器结构 593
第18章 客户/服务器编程 593
18.1.2客户/服务器体系结构 594
18.2服务器端的设计开发 596
18.2.1数据库对象 596
18.2.2定义数据库表 596
18.2.3使用域 598
18.2.4定义视图、存储过程和触发器 598
18.2.5业务规则 603
18.2.6数据库对象的访问权限 604
18.3.1连接SQL服务器 605
18.3客户端使用SQL服务器 605
18.3.2获得SQL数据库信息 608
18.3.3查询数据库 608
18.3.4数据库更新 613
18.3.5执行存储过程 614
第19章 多层数据库应用程序的开发 619
19.1多层体系结构和技术概述 619
19.1.1多层体系结构概述 619
19.1.2多层体系结构的优点 620
19.1.3多层体系结构技术概述 622
19.2客户端程序开发 628
19.2.1客户端应用程序的结构 628
19.2.2创建客户端应用程序的步骤 628
19.2.3连接应用服务器 629
19.2.4管理应用服务器连接 631
19.2.5处理约束和客户端的差错控制 632
19.2.6数据更新 632
19.3.1创建应用服务器的步骤 634
19.3服务器程序开发 634
19.3.2创建及配置远程数据模块 636
19.3.3建立IProvider接口 638
19.4InternetExpress扩展 640
19.4.1XMLBroker组件 640
19.4.2TinetXPageProducer组件 644
19.5支持CORBA和MTS 645
19.5.1CORBA 645
19.5.2MTS 646
19.6Briefcase(公文包)程序 648
第20章 报表、图表和决策的支持 651
20.1使用QuickReport组件创建报表 651
20.1.1安装QReport组件面板 651
20.1.2QuickReport组件介绍 652
20.1.3报表向导 660
20.2使用Rave组件创建报表 662
20.2.1开发环境介绍 663
20.2.2Rave组件介绍 664
20.2.3创建视图 666
20.2.4创建报表 669
20.2.5应用实例 672
20.3TeeChart图表组件 676
20.3.1TeeChart组件介绍 676
20.3.2TeeChart组件常用属性和方法 676
20.3.3TeeChart组件的使用 677
20.3.4Series对象介绍 679
20.3.5创建数据库图表 680
20.3.6创建QuickReport图表 682
20.3.7使用TeeChart向导创建图表 682
20.3.8图表的预览,打印和导出 684
20.4DecisionCube决策组件 685
20.4.1DecisionCube组件 685
20.4.2DecisionQuery组件 688
20.4.3DecisionGrid组件 689
20.4.4DecisionGraph组件 692
20.4.5DecisionPivot组件 694
20.4.6DecisionSource组件 697
第21章 从数据建模到系统开发 698
21.1软件工程介绍 698
21.1.1生命周期法 698
21.1.2快速原型法 700
21.2数据库的建立 702
21.2.1需求分析 702
21.2.2数据建模 703
21.2.3设计规范化 704
21.2.4自动化设计工具 704
21.3设计用户端界面 705
21.3.1用户界面设计的基本原则 705
21.3.2Delphi中用户界面设计 706
21.4基于ADO两层结构的实现 707
21.5.1基于DataSnap技术的多层数据库应用程序 708
21.5使用多层结构的实现 708
21.5.2使用BussinessBrokerServer的多层数据库应用程序 709
21.5.3逻辑三层结构的数据库应用程序 709
21.6发布到Web 710
21.7“图书管理系统”示例 711
21.7.1程序功能及总体结构设计 711
21.7.2数据库设计 713
21.7.3数据模块设计 713
21.7.4用户登录模块的实现 714
21.7.5图书馆管理系统功能的实现 717
21.7.6修改图书记录模块的实现 718
21.7.7修改学生记录模块的实现 721
21.7.8修改密码设置模块的实现 724
21.7.9生成预约图书的报表 726
21.7.10生成催还图书的报表 728
21.7.11图书馆服务系统功能的实现 731
21.7.12查询、借阅及预约图书 733
21.7.13查询个人借阅情况及归还图书 741
21.7.14小结 746
第22章 Internet编程和Indy组件 747
22.1WinSock基础 747
22.1.1TCP、UDP和IP 747
22.1.2套接字(Socket) 748
22.1.3客户/服务器模式 749
22.1.4面向连接的协议套接字的调用 750
22.1.5面向无连接协议的套接字的调用 750
22.2.1常用WinSockAPI函数 751
22.2利用WinsockAPI实现Socket编程 751
22.2.2利用WinSockAPI实现Socket编程 754
22.3利用组件实现Socket编程 762
22.3.1TClientSocket组件 762
22.3.2TServerSocket组件 763
22.3.3Indy组件介绍 764
22.4编程示例 772
22.4.1远程抓屏示例 772
22.4.2局域网聊天程序 780
- 《钒产业技术及应用》高峰,彭清静,华骏主编 2019
- 《现代水泥技术发展与应用论文集》天津水泥工业设计研究院有限公司编 2019
- 《异质性条件下技术创新最优市场结构研究 以中国高技术产业为例》千慧雄 2019
- 《Prometheus技术秘笈》百里燊 2019
- 《中央财政支持提升专业服务产业发展能力项目水利工程专业课程建设成果 设施农业工程技术》赵英编 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《药剂学实验操作技术》刘芳,高森主编 2019
- 《林下养蜂技术》罗文华,黄勇,刘佳霖主编 2017
- 《脱硝运行技术1000问》朱国宇编 2019
- 《催化剂制备过程技术》韩勇责任编辑;(中国)张继光 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《HTML5从入门到精通 第3版》(中国)明日科技 2019
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019