书籍详情

Kylix开发人员指南

Kylix开发人员指南

作者:(美)Charles Calvert等著;王文龙,刘湘宁译

出版社:人民邮电出版社

出版时间:2002-01-01

ISBN:9787115104250

定价:¥60.00

购买这本书可以去
内容简介
  Kylix是业界享有盛誉的工具软件开发公司Borland推出的Linux环境下的开发工具,是将Delphi移植到Linux环境的结果,它包含了Delphi for Windows的大部分功能。本书旨在让经验丰富的程序员快速地了解并掌握Kylix,从而降低开发Linux应用程序难度,并提高开发速度。全书分五部分,共21章。第一部分简要地介绍了Object Pascal和Kylix IDE,为读者使用Kylix进行开发工作打好了基础,其中包括Pascal的基本语法、循环、分支、操作符和递归、对象和接口以及Kylix的可视化开发工具、代码编辑工具和调试工具;第二部分介绍了CLX,包括CLX的体系结构、代码共享和重用、创建组件以及绘制图形等内容;第三部分介绍了Linux系统编程,包括控制台应用程序、内存管理、文件I/O以及进程和线程等;第四部分介绍了数据库开发,包括DataCLX、数据-感知组件、数据访问层、数据库优化等内容;第五部分介绍了Web开发,包括Apache Web服务器应用程序和Web服务器开发等内容。本书以简单易懂的方式全面阐述了Kylix中所有主要的开发技术,并通过范例程序提供了大量的代码,可供中高级程序员学习使用Kylix进行Linux应用程序开发时参考。
作者简介
  Charlie Calvert是一名程序员兼作者,同妻子(兼同事)Margie以及两只猫居住在加利福尼亚的圣克鲁斯。其著作包括《Delphi 4 Unleashed》、《C++ Builder 3 Unleashed》、《Delphi 2 Unleashed》、《Teach Yourself Windows 95 Programming in 21 Days》、《Delphi Unleashed》、《Teach Yourself Windows Programming》、《Turbo Pascal Programming 101》等。他还同妻子一道编写了一套关于Java的交互式教程,并在众多的技术杂志上发表过文章。在从欧洲、澳大利亚到远东的一些重大行业会议和大量小型会议上,Charlie发表过关于Delphi、C++等方面的主题演讲。
目录
第一部分了解Delphi和Linux 1
第1章可视化开发 2
1.1KylixIDE 2
1.1.1本章内容简介 2
1.1.2IDE概述 3
1.2菜单 3
1.2.1菜单快捷键 4
1.2.2快捷菜单 4
1.2.3向菜单中添加新工具 4
1.2.4工具栏 5
1.3可视化开发 6
1.3.1组件面板 7
1.3.2软件包 8
1.3.3使用Kylix窗体设计器 9
1.3.4排列组件 9
1.3.5对象查看器 10
1.3.6配置对象查看器 11
1.3.7编辑xfm文件 11
1.3.8Constraints和Anchors 13
1.3.9Tab顺序 14
1.3.10对象查看器和事件 14
1.4Kylix单元的源代码 14
1.4.1Kylix单元的接口 15
1.4.2Kylix单元的实现 17
1.4.3FormCreate方法哪里去了 18
1.5Pascal源文件 18
1.5.1Delphi工程文件 19
1.5.2单元 19
1.5.3Pascal程序的入口 20
1.5.4uses子句和循环单元引用 20
1.6Kylix中的编译阶段 22
1.7使用容器 22
1.7.1PannelDesign程序 24
1.8本章小结 30
第2章循环.分支.运算符和递归 31
2.1术语定义:语句和表达式 31
2.1.1表达式 31
2.1.2语句 31
2.2if语句 32
2.3Case语句 34
2.4for循环 35
2.5While语句 37
2.6repeat语句 39
2.6.1循环和分支小结 40
2.7运算符简介 41
2.7.1赋值运算符 41
2.7.2除法运算符 41
2.7.3布尔和逻辑运算符 42
2.7.4关系运算符 42
2.7.5获取变量的地址 43
2.7.6执行字符串和指针运算的运算符 43
2.7.7关于运算符的最后说明 44
2.8递归 44
2.8.1阶乘 44
2.8.2Fibonacci数 45
2.8.3递归绘图 47
2.9本章小结 48
第3章Pascal基本语法 49
3.1本章内容 49
3.2整型和浮点型 49
3.2.1序数类型 50
3.2.2使用序数的Pascal函数 51
3.2.3枚举类型 53
3.2.4浮点型 54
3.3Pascal字符串 58
3.3.1ShortStrings 59
3.3.2AnsiString 59
3.3.3PChar 61
3.3.4WideString 62
3.4强制类型转换 62
3.4.1as.is运算符和Sender参数 63
3.5数组 64
3.5.1数组常量 65
3.5.2动态数组和对象数组 65
3.5.3调试数组:启用范围检查功能 68
3.6记录 69
3.6.1记录和with语句 69
3.6.2Variant记录 70
3.7指针 73
3.7.1使用指向对象的指针 74
3.7.2指针.构造函数和析构函数 76
3.7.3虚拟方法和override编译指令 77
3.8ObjectPascal没有的特性 77
3.9本章小结 77
第4章对象和接口 79
4.1Kylix的对象模型 79
4.1.1在哪里声明对象 79
4.1.2ObjectPascal类的作用域规则 81
4.1.3互相引用对方的类的作用域问题 81
4.1.4声明方法 82
4.1.5ObjectPascal的继承模型:virtual和override 82
4.1.6在声明中使用dynamic而不是virtual 83
4.1.7调用覆盖方法的祖先:inherited 85
4.1.8abstract编译指令 86
4.1.9overload编译指令 87
4.1.10类实例的实例化和释放 87
4.1.11类方法 88
4.2接口 88
4.2.1接口类型 89
4.2.2接口不是类 89
4.2.3不能直接实现接口 90
4.2.4用类来实现接口 90
4.2.5调用接口的方法 93
4.2.6释放接口 94
4.2.7一个对象的多个接口 95
4.2.8方法解析子句 98
4.2.9IInterface的声明 99
4.2.10接口的实质 101
4.2.11使用接口的理由 102
4.2.12维护和更新接口 103
4.3Variant 104
4.4RTTI和浮点类型 109
4.5框架 114
4.5.1创建框架 114
4.5.2重用框架 116
4.6命令行编译器 117
4.7本章小结 117
第5章编辑器和调试器 118
5.1源代码编辑器 118
5.2编辑器和设计器 118
5.2.1在编辑器中影响可视化工具 119
5.3工程管理器 121
5.3.1代码浏览器 122
5.3.2定制代码浏览器的外观 124
5.3.3代码生成:在编辑器和浏览器中完成类 125
5.4浏览器 129
5.5To-Do列表 130
5.5.1工具窗口 132
5.5.2保存桌面和调试桌面 133
5.6神奇工具:CodeInsight 133
5.6.1代码完成化(CodeCompletion)的奇迹 133
5.6.2ParameterInsight的奇迹 134
5.6.3CodeInsight:浏览源代码 135
5.6.4代码模板将使您成为世界上最快的打字员 136
5.7使用调试器 137
5.7.1使用调试器单步调试代码 138
5.7.2调试器不能单步调试的代码:优化 139
5.7.3不能单步调试的代码:链接器 140
5.7.4在WatchList窗口监视代码 140
5.7.5查看变量 140
5.7.6使用断点 141
5.8使用异常来清理代码 142
5.8.1声明自己的异常类 144
5.8.2finally子句和再次引发异常 144
5.8.3在调试器中使用CPU窗口 145
5.8.4在线帮助 146
5.9ElfDebug服务器 147
5.9.1ElfDebugHelp单元提供的服务 155
5.9.2DebugHelp单元的输出 156
5.9.3向文本文件发送信息 157
5.9.4向HTTP服务器发送信息 158
5.9.5在服务器端接收信息 159
5.9.6所有者绘制的列表框 159
5.10本章小结 160
第6章理解Linux环境 161
6.1Linux环境概貌 161
6.2Linux桌面 162
6.2.1桌面分析 162
6.3X体系结构概述 163
6.3.1X的历史 163
6.3.2名称XWindow系统 164
6.3.3XWindow系统简介 164
6.3.4网络和X客户/服务器模型 164
6.3.5X服务器和X客户之间的细管道 164
6.3.6连接到远程服务器 165
6.4使用Kylix进行X编程 165
6.4.1X中的"Hello,World"程序 167
6.4.2使用XCreatWindow创建主窗口 172
6.4.3层叠顺序 176
6.4.4创建图形场境 177
6.4.5事件循环 177
6.4.6X编程小结 179
6.5窗口管理器 179
6.5.1为何创建窗口管理器 179
6.5.2窗口管理器的强大功能 179
6.5.3修改和查询窗口管理器 180
6.6X工具包 180
6.6.1控件.组件和部件 180
6.7桌面简介 181
6.7.1KDE桌面 181
6.7.2GNOME桌面 181
6.8本章小结 181
第二部分CLX 183
第7章CLX体系结构和可视化开发 184
7.1Qt和CLX 184
7.1.1FreeCLX 187
7.2Qt和事件 187
7.2.1难以理解的CLX消息 188
7.2.2Qt信号和槽口 189
7.2.3Qt应用程序对象和事件循环 191
7.2.4在ObjectPascal中调用Qt代码 191
7.3使用CLX编写的Slider程序 192
7.4CLX.Qt和Hook对象 193
7.4.1CLX的不足之处:EventFilterMojo 196
7.5使用样式 200
7.6使用资源 202
7.6.1字符串资源 203
7.7创建非矩形窗体 203
7.7.1窗体继承 204
7.7.2覆盖Widget的初始值 205
7.7.3绘制窗体的外形 209
7.8本章小结 210
第8章代码的包装和共享 211
8.1组件理论 211
8.2从已有的组件派生出新的组件 212
8.2.1保存工作 215
8.2.2定义组件的特性 216
8.2.3测试组件 217
8.3软件包:将组件放置到组件面板中 218
8.3.1软件包简介 218
8.3.2软件包和LD_LIBRARY_PATH 218
8.3.3软件包和组件面板 220
8.4创建软件包 220
8.4.1设计阶段软件包和运行阶段软件包 221
8.4.2图标:使用DCR文件 222
8.4.3同时打开软件包和工程 222
8.4.4requires子句 222
8.4.5注册组件 223
8.5运行阶段软件包 223
8.6在运行阶段进入软件包 226
8.7创建共享对象 226
8.7.1在Kylix程序中调用库中的例程 229
8.8动态加载共享对象 229
8.9本章小结 230
第9章创建组件 231
9.1使用消息 231
9.1.1简单消息:一个有用的控件 231
9.1.2响应消息 233
9.1.3在组件中使用FilteEvents 234
9.2扩展Elves单元 236
9.2.1为CLX组件命名的艺术 245
9.2.2TElfBigEdit控件和TElfEmtptyPanel控件 245
9.2.3创建复合组件 246
9.2.4为组件创建published属性 248
9.2.5导出属性 249
9.3另一个复合组件 249
9.4创建一个由TLabel和TEdit组成的组件 254
9.4.1改变标签的位置 262
9.4.2ElfLabelEdit及其与Windows的兼容性 263
9.4.33D文本标签 263
9.5本章小结 264
第10章高级组件设计技术 266
10.1属性 266
10.1.1声明属性 267
10.1.2在对象查看器中查看属性 269
10.2再谈属性 269
10.3从空白开始创建组件 276
10.4Clock组件 278
10.4.1理解TElfClock 283
10.4.2ClockPaint方法: 284
10.4.3TElfColorClock组件 284
10.4.4创建别致的时钟 285
10.5为组件创建图标 287
10.6ToolsAPI:属性编辑器和组件编辑器 288
10.6.1设计阶段代码和运行阶段代码之比较 292
10.6.2Kylix中的ToolsAPI 293
10.6.3ToolsAPI和Wine 293
10.6.4ToolsAPI和接口 293
10.6.5属性编辑器 293
10.6.6再谈注册组件和组件编辑器 297
10.6.7组件编辑器 298
10.6.8关于组件维护的一些说明 299
10.7组件模板 299
10.8本章小结 300
第11章图形 301
11.1QGraphics.pas中的主要对象 301
11.2TCanvas对象 301
11.3使用Qt绘图 303
11.3.1改变坐标系 304
11.4TColor类型 305
11.5画笔 306
11.6钢笔 308
11.7创建PenMode应用程序 312
11.8字体 312
11.9绘制形状 313
11.10Mandelbrot范例 316
11.10.1绘制Mandelbrot图形 323
11.10.2绘制橡皮筋 323
11.10.3TBitmap:为Mandelbrot图形照相 324
11.10.4创建事件和处理OnPaint方法 325
11.10.5LoadResource:创建开始的场景 326
11.11虚构的3D世界 326
11.11.1伪3D世界的体系结构 327
11.11.2为游戏创建图形 329
11.11.3双重缓存和表面 329
11.11.4游戏引擎的核心代码 330
11.11.5实现ISimpleSurface和IDrawTools 350
11.11.6ISimpleSurface:创建即插即用的后端 352
11.11.7在正确的位置绘制墙段 353
11.12本章小结 355
第三部分Linux系统编程 357
第12章控制台应用程序.内存管理和文件I/O 358
12.1控制台应用程序 358
12.1.1控制台开发 359
12.1.2运行控制台应用程序 359
12.2内存管理 359
12.2.1变量和数据结构 360
12.2.2对象 360
12.3Kylix中的文件I/O 361
12.3.1传统的Pascal文件操作 361
12.3.2使用TFileStream进行文件输入/输出 363
12.3.3Linux文件的特点 365
12.3.4使用glibc命令 367
12.4本章小结 367
第13章进程和线程 368
13.1Linux中的应用程序执行方法 368
13.2Kylix线程 369
13.2.1通过线程访问内存 370
13.2.2同步错误和线程安全 371
13.2.3使用线程对象的Synchronize方法 371
13.2.4临界段 372
13.2.5多读专写同步器 372
13.2.6锁定机制 373
13.2.7线程结束和终止 373
13.2.8调试多线程应用程序 374
13.2.9有关线程的最后思考 374
13.3Linux进程控制和进程间通信 374
13.3.1创建新进程 375
13.3.2发信号给进程或删除进程 376
13.4本章小结 377
第四部分DataCLX 379
第14章DataCLX基础 380
14.1DataCLX的体系结构 380
14.2数据访问 380
14.2.1连接到数据库 380
14.2.2检索数据 381
14.3数据控件 382
14.3.1使用可视化数据控件显示数据 382
14.4典型的数据流 385
14.4.1交互式数据操纵 386
14.4.2数据发布 386
14.5配置服务器 387
14.5.1连接到InterBase 387
14.5.2连接到MySQL 388
14.5.3连接到DB2 388
14.5.4连接到Oracle 389
14.6本章小结 389
第15章使用数据-感知组件 390
15.1TSQLConnection 390
15.1.1TSQLConnection的属性 391
15.1.2TSQLConnection的方法 392
15.1.3TSQLConnection的事件 392
15.2TSQLDataSet 394
15.3TSQLQuery 394
15.4TSQLStoredProc 395
15.5TSQLTable 395
15.6TClientDataset 395
15.6.1TClientDataSet的属性 396
15.6.2TClientDataSet的方法 397
15.7TDataSetProvider 399
15.8TSQLClientDataSet 400
15.9TSQLMonitor 400
15.10一般的数据集用法模式 402
15.10.1查询 402
15.10.2查找字段 402
15.10.3参数化查询 403
15.10.4主-细关系 403
15.10.5定制明细网格 404
15.10.6计算字段 405
15.10.7本地递增搜索 405
15.10.8本地过滤 407
15.10.9书签 407
15.10.10使用存储过程 409
15.10.11客户端临时键 410
15.10.12聚合字段 411
15.11本章小结 411
第16章数据访问层 412
16.1数据访问层的目标 412
16.1.1数据访问速度最大化 412
16.1.2平台独立性 412
16.1.3易于部署 413
16.1.4使应用程序最小,占用的资源最少 413
16.1.5为高效地处理SQL和存储过程提供通用接口 413
16.1.6使驱动程序开发容易.可扩展 413
16.1.7可访问数据库特定的特性 413
16.2概貌 414
16.3MyBase数据集 414
16.3.1格式(二进制和XML) 415
16.3.2元数据 415
16.3.3约束 416
16.3.4数据 416
16.3.5字段类型 416
16.3.6特殊字段 417
16.3.7德尔塔 417
16.3.8返回给发送方 418
16.4数据库连接 419
16.4.1dbExpress抽象 420
16.4.2数据类型映射 428
16.5dbExpress驱动程序开发 428
16.5.1理解数据库厂商客户 429
16.5.2初始化环境变量 429
16.5.3连接到数据库服务器 429
16.5.4初始化语句句柄 429
16.5.5准备SQL语句 430
16.5.6传递运行阶段参数 430
16.5.7执行SQL语句 430
16.5.8绑定记录缓冲区 430
16.5.9取回记录 431
16.5.10释放句柄和断开连接 432
16.6dbExpress的核心实现 432
16.6.1SQLDriver 432
16.6.2SQLConnection 432
16.6.3SQLCommand 433
16.6.4SQLCursor 435
16.6.5SQLMetaData 436
16.7本章小结 436
第17章创建一个应用程序 437
17.1应用程序描述 437
17.2数据库定义 438
17.2.1表 438
17.2.2索引 440
17.2.3数据约束 440
17.2.4生成器 441
17.2.5存储过程 441
17.2.6触发器 443
17.3基本设计 444
17.3.1数据模块 444
17.4GUI界面 447
17.4.1显示数据 447
17.4.2编辑数据 447
17.4.3扩展功能 448
17.5Web界面 449
17.5.1格式化 449
17.5.2布局 453
17.5.3导航 455
17.6本章小结 457
第18章数据库优化 458
18.1简介 458
18.2填充数据库 458
18.3监视SQL通信 459
18.4避免长时间打开事务 459
18.5不要使用包含动词"like"的参数化查询 459
18.6避免使用主键和外键 460
18.7使用存储过程 460
18.8使用触发器 461
18.9精益求精 461
18.10参数化并准备查询以达到最佳性能 462
18.11像避免瘟疫一样避免使用fetchall 462
18.12Rob的左外连接规则 462
18.12.1设计时避免左外连接 463
18.12.2使用相关的子查询 463
18.12.3使用存储过程 463
18.12.4使用左外连接 464
18.13当数据库非常大或用户非常多时缓存查找表 464
18.14使用智能查找 464
18.15关闭元数据 465
18.16关闭同步写入,但要清楚这样做的危险 465
18.17理解数据库索引 466
18.17.1理解选择性 466
18.17.2谨慎使用外键 466
18.17.3多列索引 466
18.17.4对索引排序 466
18.17.5索引字段应尽可能少 466
18.18针对InterBase的技巧 466
18.18.1不要使用大型VarChar 466
18.18.2创建前端应用程序时总是使用远程连接 467
18.18.3将数据库的页面大小设置为2KB或4KB 467
18.18.4理解索引计划 467
18.18.5使用Gfix来设置数据库缓存缓冲区 471
18.18.6将InterBase安装在单处理器机器上 471
18.19本章小结 471
第五部分Web开发 473
第19章ApacheWeb服务器应用程序 474
19.1Web服务器应用程序 474
19.1.1CGI协议 474
19.1.2CGI表单 474
19.2ApacheWeb服务器 475
19.2.1Kylix和CGI 476
19.2.2配置CGI 478
19.2.3配置DSO 479
19.3本章小结 480
第20章Web服务器开发 481
20.1Web模块 481
20.2新建Web服务器应用程序 481
20.3WebBroker组件 483
20.3.1TWebDispatcher 484
20.3.2TWebModule 484
20.3.3TWebResponse 485
20.3.4TWebRequest 485
20.4显示内容 486
20.4.1模仿GET 488
20.5页面生成器 488
20.5.1TPageProducer 488
20.5.2HTMLDoc和HTMLFile 491
20.5.3TDataSetPageProducer 491
20.6表格生成器 497
20.6.1TDataSetTalbeProducer 497
20.6.2定制 502
20.6.3主-细关系 502
20.7本章小结 503
第21章高级Web服务器开发 505
21.1新的WebApp42 505
21.1.1Producer和ProducerContent 505
21.2dbExpress 506
21.3TDataSetTableProducer 507
21.3.1TSQLQueryTableProducer 507
21.3.2PrepareSQLQueryTableProducer 509
21.4维护状态信息 511
21.4.1胖URL 512
21.4.2Cookies 515
21.4.3隐藏字段 516
21.5高级页面生成技术 518
21.6图像 522
21.7跨平台策略 528
21.8本章小结 529
猜您喜欢

读书导航