译者序前言**部分 Kylix应用程序开发第1章 Kylix简介 1.1 Kylix概述 1.1.1 使用组件方式构建应用程序 1.1.2 Kylix执行代码生成 1.1.3 Kylix编程环境是事件驱动的 1.1.4 面向对象的软件开发 1.1.5 理解Kylix的开放工具API 1.1.6 快速应用程序开发 1.2 Delphi***眼中的Kylix 1.2.1 Kylix和Linux 1.2.2 CLX概述 1.2.3 一些缺陷第2章 创建应用程序 2.1 创建一个基本的应用程序 2.1.1 创建一个新的工程 2.1.2 放置并配置组件 2.1.3 书写事件处理程序2.1.4 添加菜单 2.1.5 使用附加的窗体和对话框 2.1.6 在命令提示符下运行完成的工程 2.2 Kylix工程中的文件 2.2.1 工程源文件 2.2.2 单元 2.2.3 窗体文件 2.2.4 被编译单元2.2.5 可执行文件2.2.6 被修改文件2.2.7 工程选项文件 2.2.8 工程编译器设置文件 第3章 Kylix的RAD框架 3.1 使用可视窗体继承 3.1.1 改变继承对象的属性 3.1.2 在继承对象中覆盖事件处理程序 3.1.3 源于当前工程 3.1.4 定义共享的Object Repository 3.2 设计动作列表 3.3 使用帧 3.3.1 创建帧3.3.2 使用帧3.3.3 覆盖包含组件的属性3.3.4 包含的对象事件处理程序 3.3.5 覆盖包含的对象的事件处理程序 3.3.6 帧和资源 3.3.7 简化帧的使用 3.3.8 将帧转化为实际的组件 3.4 使用数据模块 3.4.1 使用数据模块来共享组件 3.4.2 数据模块的局限性 第4章 使用并配置编辑器 4.1 编辑器键映射 4.2 选择编辑器按键4.2.1 键宏记录 4.2.2 块缩进与不缩进 4.2.3 使用书签 4.2.4 将To-Do列表项作为书签来使用 4.2.5 类导航 4.2.6 代码浏览4.2.7 类完成 4.2.8 递增查找4.2.9 查找匹配分隔符 4.2.10 列操作 4.3 Code Insight 4.3.1 代码完成 4.3.2 代码参数 4.3.3 工具提示表达式求值 4.3.4 工具提示符号洞察 4.3.5 代码模板 4.4 编辑器键绑定4.4.1 声明键绑定类 4.4.2 实现键绑定类 4.4.3 声明并实现Register过程 4.4.4 创建并安装新的设计时包 第5章 调试Kylix应用程序 5.1 集成调试器 5.1.1 工具提示表达式求值 5.1.2 调试窗口 5.1.3 Run菜单5.2 禁用调试器5.2.1 指示调试器忽略引发的异常 5.2.2 指示Kylix忽略特定异常 5.3 断点概述 5.3.1 源断点 5.3.2 其他断点类型 5.3.3 在Kylix会话之间持续断点 第二部分 数据库应用程序第6章 数据库应用程序 6.1 理解数据库 6.1.1 数据库与表6.1.2 数据库与SQL 6.1.3 其他与数据库相关的概念 6.1.4 本书中使用的数据库 6.1.5 创建数据库与表 6.2 利用Kylix开发数据库概述 6.3 数据库应用程序中使用的组件 6.3.1 数据识别控件 6.3.2 数据访问组件 6.3.3 dbExpress组件6.4 dbExpress概述 6.5 创建简单的数据库应用程序 第7章 使用数据识别控件 7.1 数据识别控件的常规配置 7.1.1 Tab顺序与可视控件 7.1.2 修改Tab顺序 7.2 配置Kylix的数据识别控件 7.2.1 准备一个启用数据的组件模板 7.2.2 使用DBGrid 7.2.3 使用DBNavigator 7.2.4 使用DBText 7.2.5 控制DBEdit 7.2.6 使用DBMemo 7.2.7 使用DBListBox 7.2.8 使用DBComboBox7.2.9 使用DBCheckBox7.2.10 使用DBRadioGroup 7.2.11 使用DBLookupListBox与DBLookupComboBox第8章 使用TField 8.1 字段概述 8.2 理解**性字段 8.2.1 创建**性字段8.2.2 配置**性字段8.3 在程序运行时使用字段 8.3.1 读写数据集的字段 8.3.2 编写OnValidate事件处理程序 8.3.3 字段的访问、性能与维护问题 8.4 创建新的**性字段 8.4.1 创建计算字段 8.4.2 创建查找字段 8.4.3 定义合计字段 第9章 使用��向数据集 9.1 单向数据集 9.2 使用单向数据集 9.2.1 定义SQL连接 9.2.2 返回记录集的单向数据集 9.2.3 不返回结果集的单向数据集9.3 使用参数化查询 9.3.1 创建主细视图 9.3.2 通过链接查询创建主细视图 9.3.3 准备单向查询 9.4 执行存储过程 9.4.1 返回各个值的存储过程 9.4.2 返回数据集的存储过程 第10章 使用内存数据集 10.1 内存数据集 10.2 创建内存表与索引 10.3 保存数据与取消修改10.4 按索引排序 10.5 使用范围 10.6 过滤 10.6.1 根据属性进行过滤 10.6.2 过滤器选项 10.6.3 使用OnFilterRecord事件处理程序 10.6.4 使用过滤器进行导航 10.7 搜索数据 10.7.1 使用FindKey与FindNearest 10.7.2 使用GotoKey与GotoNearest 10.7.3 使用Locate与Lookup 10.8 记录级别的有效性检查 第11章 **数据库技术 11.1 应用更新的艺术 11.1.1 利用内存数据集编辑数据 11.1.2 基于记录状态进行过滤 11.1.3 判定记录状态 11.1.4 从Change日志中删除修改 11.1.5 刷新记录 11.2 自定义更新过程 11.2.1 通过DataSetProvider属性控制更新 11.2.2 向更新过程添加代码 11.2.3 处理更新错误 11.3 实用技术 11.3.1 使用SQL监视器 11.3.2 克隆游标 11.3.3 以每次保存一条记录的方式保存数据 第12章 编写dbExpress驱动程序 12.1 理解数据库提供商客户端 12.1.1 初始化环境 12.1.2 连接数据库服务器 12.1.3 初始化语句句柄 12.1.4 准备SQL语句 12.1.5 传递运行时参数 12.1.6 执行SQL语句 12.1.7 绑定记录缓冲区 12.1.8 读取记录 12.1.9 释放句柄并且断开连接 12.2 dbExpress核心实现 12.2.1 SQLDriver类 12.2.2 SQLConnection类 12.2.3 SQLCommand类 12.2.4 SQLCursor类 12.2.5 SQLMetaData类12.3 dbExpress接口源文件 第三部分 Kylix先进特性精选第13章 多线程应用程序 13.1 多线程的优点 13.2 创建多线程应用程序 13.3 线程同步 13.3.1 使用Synchronize 13.3.2 使用临界区 13.3.3 等待线程 13.3.4 使用事件对象 13.3.5 锁对象 13.4 其他线程技术 13.4.1 线程局部变量 13.4.2 调试线程 13.4.3 对数据库的多线程访问 第14章 共享对象库 14.1 共享对象库概述 14.2 创建一个共享对象库的例子 14.2.1 将函数书写到Export 14.2.2 控制共享对象库名称 14.3 加载共享对象库存例程 14.4 创建共享对象库导入单元14.5 动态加载共享对象库 14.5.1 声明变量 14.5.2 动态加载共享对象库 14.5.3 获取函数或者过程的地址 14.5.4 释放共享对象库 14.6 调试共享对象库 14.6.1 使用宿主应用程序进行调试 14.6.2 使用工程组进行调试 14.7 共享对象库初始化及退出14.7.1 定义初始化代码 14.7.2 定义退出过程 第15章 构建组件 15.1 对象概述 15.1.1 从记录转向类 15.1.2 封装与成员可见性 15.1.3 定义运行时接口 15.1.4 继承与多态 15.2 组件创建简介 15.3 一个简单组件示例:定义新的属性缺省值 15.3.1 使用Component向导 15.3.2 覆盖方法 15.3.3 实现覆盖构造函数 15.3.4 测试新的组件 15.3.5 安装组件 15.4 创建设计时包15.5 有关属性的一个例子 15.5.1 定义成员域 15.5.2 定义属性 15.5.3 定义方法 15.5.4 覆盖现有方法 15.5.5 实现覆盖方法 15.5.6 创建事件属性 15.5.7 在完成组件时需要注意的细节问题 15.6 相关主题:提高属性可见性 第16章 使用接口 16.1 接口概述 16.2 为何使用接口 16.3 声明接口 16.4 实现接口 16.5 接口和方法解析 16.6 通过授权实现接口16.7 接口实例:数据泵第四部分 Internet应用程序开发第17章 Internet技术概述 17.1 协议、技术与专业术语 17.2 RFC 17.3 IP地址 17.3.1 域名 17.3.2 TCP/IP与UDP 17.3.3 套接字与端口17.3.4 SGML 17.3.5 HTML 17.3.6 FTP 17.3.7 HTTP17.3.8 MIME17.3.9 万维网 17.3.10 Web服务器 17.3.11 Web浏览器 17.3.12 Apache 17.3.13 CGI与DSO 17.3.14 SSI 17.4 Web服务器扩展概述 17.5 Web交互简介 17.5.1 URL的组成 17.5.2 请求类型 17.6 使用HTML 17.7 使用HTML将数据提交给Web服务器扩展 17.7.1 图片标记 17.7.2 锚标记 17.7.3 HTML表单17.8 编译Apache服务器来使用DSO 第18章 使用Web Broker编写Web服务器扩展 18.1 创建简单的CGI Web服务器扩展 18.2 安装、使用CGI服务器 18.2.1 添加LD_LIBRARY_PATH环境变量 18.2.2 将CGI应用程序写到ScriptAlias目录中 18.2.3 从浏览器执行CGI应用程序 18.3 创建、配置一个简单的Apache DSO 18.3.1 创建DSO工程 18.3.2 使用生成器 18.4 安装、使用DSO库 18.4.1 将DSO库写到Apache目录中 18.4.2 将DSO添加到httpd.conf中 18.4.3 关闭和启动Apache 18.4.4 从一个浏览器执行DSO库 第19章 **Web Broker主题 19.1 从HTML表单中获取数据 19.2 创建基于Web的数据库应用程序 19.2.1 Web服务器扩展与并发性 19.2.2 数据识别提供者 19.2.3 在TableProducer中格式化单元 19.3 Cookie与WebRequest对象 19.3.1 获取和设置cookie 19.3.2 使用cookie和重定向19.4 WebRequest的内容 19.5 调试Web服务器扩展19.5.1 将CGI工程转换成DSO工程 19.5.2 调试DSO工程 第20章 Internet Direct概述 20.1 什么是Internet Direct 20.2 Internet Direct组件 20.2.1 Indy客户端组件 20.2.2 Indy服务器组件 20.2.3 Indy Miscellaneous组件 20.2.4 下载更新的Internet Direct组件 20.3 使用Internet Direct组件 20.3.1 Internet Direct客户端是如何工作的 20.3.2 使用TIdAntiFreeze 20.3.3 Internet Direct服务器的工作方式 20.3.4 使用线程管理器 20.4 Internet Direct许可证 20.4.1 Indy修改的BSD许可证 20.4.2 Indy MPL许可证 20.4.3 在Kylix应用程序中遵守Indy许可证 20.5 技术支持 第21章 使用Internet Direct 21.1 客户端和服务器的创建顺序 21.2 一个简单的服务器示例 21.2.1 线程和IdTCPServer 21.2.2 阻塞调用与并发 21.2.3 OnExecute和异常21.3 数据库服务器示例 21.3.1 创建数据库服务器21.3.2 创建数据库客户 21.4 在客户端处理异常 21.4.1 从客户端检测连接中断 21.4.2 使用多线程客户端测试服务器 21.5 使用TIdSMTP发送邮件 21.5.1 创建消息 21.5.2 创建TIdSMTP客户 21.5.3 在线程中创建客户端 21.5.4 初始化客户端线程 21.5.5 从一个线程中更新用户界面 21.6 ZIP编码查找服务器和客户端 21.6.1 定义ZIP编码协议 21.6.2 ZIP编码服务器 21.6.3 ZIP编码客户端 21.7 创建一个控制台服务器 21.7.1 创建控制台服务器的例子 21.7.2 测试纯文本控制台服务器 附 录附录A 安装示例代码 附录B 本书的Web支持站点