怎样在TDataset中汉英混用
2008-04-09 04:17:46来源:互联网 阅读 ()
实现这样的转换可以有好几种方法。
一种是静态转换。所谓静态,即是在设计字段或制作表头时,修改其相关Lebel 或 DisplayLabel。无论该字段是否引用或参照别的字段,一旦形成可执行的组件对象,这中形式也就随之固定下来。到了实际运行时,这时的形式也可以满足一般的需求。但是这种形式不具备伸缩性,也不具备可扩充性。
另一种是动态修改。我们从 TTable 控件得知,Fields 属性是该 Table 的字段属性,而其每一字段的 DisplayLabel 属性是在运行时可以改动的。利用这一点,我门可以制作一个通用的作用于 TDataSet 的控件,使其具有数据感知功能,在数据库加载时替我们做这个动态转换。至于控件对象选用 TDataset 而不选用 Table(TQuery)是出于移植性的考虑。
下面说一说其工作原理。
当一 Delphi 的执行程序加载到内存当中时,它首先是完成各成员对象的初始化即完成 Load 事件,然后才根据需要执行各组件的 Create,对于继承自 TDataSet的TTable、TQuery 等也不例外。我们关心的是 Form 的 Close事件和 TTDataSet 的 Open 和 Close 事件,当我们连结(HOOK)到这些对象的Notify事件,也就具备了被事件驱动(唤醒)的功能。SetEnevts 和 RestoreEvents 这两个过程是起到在Load(装载)时设置主单元 Form和 TDataSet 的OPen和Close 事件,在关闭(主单元或数据库)时,恢复其原来的事件。GetForm 为获取主单元的窗体的过程。IniFileName 为保存有字段中英文对照表的 INI 文件。
其格式如下:
[DEFAULT] ; 设置为缺省库 RKSJ=入库时间 ;字段名 RKSJ 中文: 入库时间 DJ=单价 ;字段名 DJ 模旱ゼ? YS=颜色 ;字段名 YS 中文:颜色 BZ=备注 ;字段名 BZ 中文:备注 [DEFAULT_SIZE] ;缺省库字段长度 RKSJ=12 ;字段 RKSJ 显示长度为 12 DJ=8 ;字段 DJ 显示长度为 8 YS=10 ;字段 YS 显示长度为 10 BZ=40 ;字段 BZ 显示长度为 40
IniSection 指定该库(TTable,TQuery) 位于 IniFileName 的哪一区。我们看到在 Load 这个重载过程中,有一个Loading 的变量,它是为了防止在构建Form或DataMoudle时加载了SetEvents, 而我们的目的是在运行时设置,而不是在 Delphi的集成环境里进行 Form 的设计时。在 Save 的过程中,IniFileName 的存取位置在该执行程序的目录下,Save 过程分为两部分进行。
当用户指定了IniSection 时,对于本 FDataSet 的字段都将放在指定的 IniSection 区中, 期间对以前的任何数据不作保留。
当用户没有指定 Inisection 时,FDataSet 的字段都将放在 Default(缺省)区中,此时对保存的 FDataSet 字段做进一步的更新处理。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash