《Kylix开发人员指南》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)Charles Calvert等著;王文龙,刘湘宁译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2002
  • ISBN:7115104255
  • 页数:529 页
图书介绍:

第一部分 了解Delphi和Linux 1

第1章 可视化开发 2

1.1 Kylix IDE 2

1.1.1 本章内容简介 2

1.1.2 IDE概述 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.8 Constraints和Anchors 13

1.3.9 Tab顺序 14

1.3.10 对象查看器和事件 14

1.4 Kylix单元的源代码 14

1.4.1 Kylix单元的接口 15

1.4.2 Kylix单元的实现 17

1.4.3 FormCreate方法哪里去了 18

1.5 Pascal源文件 18

1.5.1 Delphi工程文件 19

1.5.2 单元 19

1.5.3 Pascal程序的入口 20

1.5.4 uses 子句和循环单元引用 20

1.6 Kylix中的编译阶段 22

1.7 使用容器 22

1.7.1 PannelDesign程序 24

1.8 本章小结 30

第2章 循环、分支、运算符和递归 31

2.1 术语定义:语句和表达式 31

2.1.1 表达式 31

2.1.2 语句 31

2.2 if 语句 32

2.3 Case 语句 34

2.4 for 循环 35

2.5 While语句 37

2.6 repeat语句 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.2 Fibonacci数 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.3 Pascal字符串 58

3.3.1 ShortStrings 59

3.3.2 AnsiString 59

3.3.3 PChar 61

3.3.4 WideString 62

3.4 强制类型转换 62

3.4.1 as、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.2 Variant记录 70

3.7 指针 73

3.7.1 使用指向对象的指针 74

3.7.2 指针、构造函数和析构函数 76

3.7.3 虚拟方法和override编译指令 77

3.8 Object Pascal没有的特性 77

3.9 本章小结 77

第4章 对象和接口 79

4.1 Kylix的对象模型 79

4.1.1 在哪里声明对象 79

4.1.2 Object Pascal类的作用域规则 81

4.1.3 互相引用对方的类的作用域问题 81

4.1.4 声明方法 82

4.1.5 Object Pascal的继承模型:virtual和override 82

4.1.6 在声明中使用dynamic而不是virtual 83

4.1.7 调用覆盖方法的祖先:inherited 85

4.1.8 abstract编译指令 86

4.1.9 overload编译指令 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.9 IInterface的声明 99

4.2.10 接口的实质 101

4.2.11 使用接口的理由 102

4.2.12 维护和更新接口 103

4.3 Variant 104

4.4 RTTI和浮点类型 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.5 To-Do列表 130

5.5.1 工具窗口 132

5.5.2 保存桌面和调试桌面 133

5.6 神奇工具:Code Insight 133

5.6.1 代码完成化(Code Completion)的奇迹 133

5.6.2 Parameter Insight的奇迹 134

5.6.3 Code Insight:浏览源代码 135

5.6.4 代码模板将使您成为世界上最快的打字员 136

5.7 使用调试器 137

5.7.1 使用调试器单步调试代码 138

5.7.2 调试器不能单步调试的代码:优化 139

5.7.3 不能单步调试的代码:链接器 140

5.7.4 在Watch List窗口监视代码 140

5.7.5 查看变量 140

5.7.6 使用断点 141

5.8 使用异常来清理代码 142

5.8.1 声明自己的异常类 144

5.8.2 finally子句和再次引发异常 144

5.8.3 在调试器中使用CPU窗口 145

5.8.4 在线帮助 146

5.9 ElfDebug服务器 147

5.9.1 ElfDebugHelp单元提供的服务 155

5.9.2 DebugHelp单元的输出 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.1 Linux环境概貌 161

6.2 Linux桌面 162

6.2.1 桌面分析 162

6.3 X体系结构概述 163

6.3.1 X的历史 163

6.3.2 名称X Window系统 164

6.3.3 X Window系统简介 164

6.3.4 网络和X客户/服务器模型 164

6.3.5 X服务器和X客户之间的细管道 164

6.3.6 连接到远程服务器 165

6.4 使用Kylix进行X编程 165

6.4.1 X中的"Hello,World"程序 167

6.4.2 使用XCreatWindow创建主窗口 172

6.4.3 层叠顺序 176

6.4.4 创建图形场境 177

6.4.5 事件循环 177

6.4.6 X编程小结 179

6.5 窗口管理器 179

6.5.1 为何创建窗口管理器 179

6.5.2 窗口管理器的强大功能 179

6.5.3 修改和查询窗口管理器 180

6.6 X工具包 180

6.6.1 控件、组件和部件 180

6.7 桌面简介 181

6.7.1 KDE桌面 181

6.7.2 GNOME桌面 181

6.8 本章小结 181

第二部分 CLX 183

第7章 CLX体系结构和可视化开发 184

7.1 Qt和CLX 184

7.1.1 FreeCLX 187

7.2 Qt和事件 187

7.2.1 难以理解的CLX消息 188

7.2.2 Qt信号和槽口 189

7.2.3 Qt应用程序对象和事件循环 191

7.2.4 在Object Pascal中调用Qt代码 191

7.3 使用CLX编写的Slider程序 192

7.4 CLX、Qt和Hook对象 193

7.4.1 CLX的不足之处:EventFilter Mojo 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.4 requires子句 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.2 TElfBigEdit控件和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.2 ElfLabelEdit及其与Windows的兼容性 263

9.4.3 3D文本标签 263

9.5 本章小结 264

第10章 高级组件设计技术 266

10.1 属性 266

10.1.1 声明属性 267

10.1.2 在对象查看器中查看属性 269

10.2 再谈属性 269

10.3 从空白开始创建组件 276

10.4 Clock组件 278

10.4.1 理解TElfClock 283

10.4.2 Clock Paint方法: 284

10.4.3 TElfColorClock组件 284

10.4.4 创建别致的时钟 285

10.5 为组件创建图标 287

10.6 Tools API:属性编辑器和组件编辑器 288

10.6.1 设计阶段代码和运行阶段代码之比较 292

10.6.2 Kylix中的Tools API 293

10.6.3 Tools API和Wine 293

10.6.4 Tools API和接口 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.1 QGraphics.pas中的主要对象 301

11.2 TCanvas对象 301

11.3 使用Qt绘图 303

11.3.1 改变坐标系 304

11.4 TColor类型 305

11.5 画笔 306

11.6 钢笔 308

11.7 创建PenMode应用程序 312

11.8 字体 312

11.9 绘制形状 313

11.10 Mandelbrot范例 316

11.10.1 绘制Mandelbrot图形 323

11.10.2 绘制橡皮筋 323

11.10.3 TBitmap:为Mandelbrot图形照相 324

11.10.4 创建事件和处理OnPaint方法 325

11.10.5 LoadResource:创建开始的场景 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.6 ISimpleSurface:创建即插即用的后端 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.3 Kylix中的文件I/O 361

12.3.1 传统的Pascal文件操作 361

12.3.2 使用TFileStream进行文件输入/输出 363

12.3.3 Linux文件的特点 365

12.3.4 使用glibc命令 367

12.4 本章小结 367

第13章 进程和线程 368

13.1 Linux中的应用程序执行方法 368

13.2 Kylix线程 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.3 Linux进程控制和进程间通信 374

13.3.1 创建新进程 375

13.3.2 发信号给进程或删除进程 376

13.4 本章小结 377

第四部分 DataCLX 379

第14章 DataCLX基础 380

14.1 DataCLX的体系结构 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.1 TSQLConnection 390

15.1.1 TSQLConnection的属性 391

15.1.2 TSQLConnection的方法 392

15.1.3 TSQLConnection的事件 392

15.2 TSQLDataSet 394

15.3 TSQLQuery 394

15.4 TSQLStoredProc 395

15.5 TSQLTable 395

15.6 TClientDataset 395

15.6.1 TClientDataSet的属性 396

15.6.2 TClientDataSet的方法 397

15.7 TDataSetProvider 399

15.8 TSQLClientDataSet 400

15.9 TSQLMonitor 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.3 MyBase数据集 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.1 dbExpress抽象 420

16.4.2 数据类型映射 428

16.5 dbExpress驱动程序开发 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.6 dbExpress的核心实现 432

16.6.1 SQLDriver 432

16.6.2 SQLConnection 432

16.6.3 SQLCommand 433

16.6.4 SQLCursor 435

16.6.5 SQLMetaData 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.4 GUI界面 447

17.4.1 显示数据 447

17.4.2 编辑数据 447

17.4.3 扩展功能 448

17.5 Web界面 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.12 Rob的左外连接规则 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章 Apache Web服务器应用程序 474

19.1 Web服务器应用程序 474

19.1.1 CGI协议 474

19.1.2 CGI表单 474

19.2 Apache Web服务器 475

19.2.1 Kylix和CGI 476

19.2.2 配置CGI 478

19.2.3 配置DSO 479

19.3 本章小结 480

第20章 Web服务器开发 481

20.1 Web模块 481

20.2 新建Web服务器应用程序 481

20.3 WebBroker组件 483

20.3.1 TWebDispatcher 484

20.3.2 TWebModule 484

20.3.3 TWebResponse 485

20.3.4 TWebRequest 485

20.4 显示内容 486

20.4.1 模仿GET 488

20.5 页面生成器 488

20.5.1 TPageProducer 488

20.5.2 HTMLDoc和HTMLFile 491

20.5.3 TDataSetPageProducer 491

20.6 表格生成器 497

20.6.1 TDataSetTalbeProducer 497

20.6.2 定制 502

20.6.3 主-细关系 502

20.7 本章小结 503

第21章 高级Web服务器开发 505

21.1 新的WebApp42 505

21.1.1 Producer和ProducerContent 505

21.2 dbExpress 506

21.3 TDataSetTableProducer 507

21.3.1 TSQLQueryTableProducer 507

21.3.2 PrepareSQLQueryTableProducer 509

21.4 维护状态信息 511

21.4.1 胖URL 512

21.4.2 Cookies 515

21.4.3 隐藏字段 516

21.5 高级页面生成技术 518

21.6 图像 522

21.7 跨平台策略 528

21.8 本章小结 529