Delphi 开发数据库控件的方法[1]

 我来答
黑科技1718
2022-10-11 · TA获得超过5846个赞
知道小有建树答主
回答量:433
采纳率:97%
帮助的人:80.6万
展开全部

  Delphi作为一种目前十分流行的数据库开发语言 在数据库开发领域有着十分重要的地位 它不仅提供了可视化的开发环境 使得开发变得相对容易 而且还是一种面向对象的语言 使得程序员能够充分利用面向对象编程的种种优势——如封装 继承等等 从而大大减轻了开发的难度和工作量 下面 我们就谈一谈利用面向对象的特性来开发数据库控件的方法

  Delphi本身提供了一些数据库控件 如DBGrid Table等 它们给开发带来了很多方便 下面我们来以一个能够显示数据表中的所有字段的控件为例来说明如何用Delphi来进行控件的编程

  首先要为控件选择一个合适的父类 Windows的一个好处就在于它将许多操作标准化了 通过这些标准的操作 使得学习和使用都有章可循 用户就很容 易融会贯通地掌握整个系统 在Delphi中提供了许多控件 这些控件生成的应用程序足以满足Windows编程的要求 而一些新的控件也可以在此基础上 产生 它一方面继承了一部分控件标准的操作 另一方面也在程序中加入一些代码来实现特定的功能 这样用户使用起来不会觉得突兀 也简化了程序的开发 根据 我们的目标可以看出 利用 下拉框 控件作为新控件的父类比较合适 因为它提供了下拉框中的所有标准操作 这就可以大大减少我们的编程量   然后就是为 特定的功能编写代码 我们应该想到 如果一个下拉框能够显示一个数据库中的所有字段 那么它一定有一个属性能够与数据库相连 我们将这个属性定名为 DataSource 并将这一属性添加到控件中 添加的方法是 首先在Private段中加入如下代码

   FDataLink:TFieldDataLink;   function GetDataSource:TDataSource;   Procedure SetDataSource( Value:TDataSource);

  其中TfieldDataLink是一个十分重要的类 我们之所以能够很容易地进行数据库控件的开发全是拜它之赐 它有一些十分有用的属性 如 DataSource 利用这个属性 我们就能很容易地指定新控件的DataSource属性

  第三步就是为控件的功能编写代码 可以想到 如果我们想要在拉下下拉框时显示数据库中的所有字段 就要在它的DropDown事件中加入代码来将所有 的字段加入到下拉框的下拉区域中 这应该分两步走 第一就是要取得指定数据库的所有字段 第二就是将这些字段以字符串的格式加入到下拉框中(而拉下时显示 所有字段的功能则由下拉框控件自己完成) 在取得数据库的字段时 用到了我们上面提到的TfieldDataLink类 下面的代码就可以获得指定数据库 的字段数目

   j:= ;   j:=FDataLink DataSource DataSet FieldCount ;//取得数据库中的所有字段的名字   I:= ;

  然后再用下面的代码将这些字段的名字加入到下拉框的items属性中 值得注意的是在每次拉下这个下拉框时都要将items属性清空 否则这个下拉框将每次都会因加入重复的内容而变得越来越长 并且一次选择可以选定许多项 使得控件看起来有点怪

  items Clear ; //清空items属性

  repeat //循环操作将字段加入下拉框中

  items Add (FDataLink DataSet Fields[I] FieldName ); //将字段名加入到下拉框中

  I:=I+ ;

  until I>j- ; //直到所有的字段加入完为止

  第四步 就是将以上代码加入到Delphi的控件编辑窗口中去 点击Delphi的 Component/New Component 菜单 系统出现一个对话框 将对话框如图 所示填写

  填写完毕点击 OK 按钮 就可以创建一个文件 将上面提供的代码加入到文件的适当位置 就可以完成这个控件的编写 图 是带有这个控件的程序的例子

  可以想见 这个控件有着十分广泛的功能 例如 我们能够利用它设置指定字段的值来运行查询 也可以返回数据库中指定字段的数据类型 长度等信息 给我们的编程提供了极大的方便

但是也应该看到 这个控件也有一些缺点 那就是它只能显示字段的名称 一般的数据库中字段的名称都是英文的 这给中文版的应用软件带来不便 下面我们 就用FdataLink的另一个属性来显示中文化的字段 这个属性就是DisplayName 它所指定的是数据库字段的显示名称 而这个名称我们可以在 设计时将其汉化 这样在应用程序中显示出来的就是有意义的中文了

lishixinzhi/Article/program/Delphi/201311/8535

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式