科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Delphi数据库控件使用入门

Delphi数据库控件使用入门

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文详细介绍了Delphi数据控件的属性,方法和使用技巧。

作者:linj 来源:论坛 2007年10月31日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
禁止和允许数据刷新

  当程序正在遍历整个数据集或者搜索一个特定的记录时,应当暂时禁止数据控件刷新数据,这样能加快遍历或搜索的速度,防止屏幕总是在闪烁。调用数据集的DisableControls可以暂时禁止连接这个数据集的数据控件刷新数据。DisableControls函数通常在循环操作前调用。等循环结束后,程序应当立即调用数据集构件的EnableControls函数重新允许刷新数据。为了确保最后总是能恢复刷新,建议采用Try...Finally结构。这样,即使在循环中出现异常,也可以保证总能调用EnableControls。

  下面的代码演示了怎样调用DisableControls和EnableControls函数:

CustTable.DisableControls;
Try
CustTable.First;
While not CustTable.EOF Do
Begin
...
CustTable.Next;
End;
Finally
CustTable.EnableControls;
End;

  手动刷新数据

  调用数据集的Refresh可以读取数据集中最新的数据并刷新数据控件,这个功能在多用户环境尤其有用,因为其他用户有可能已改变了数据集中的数据。有时候,调用Refresh可能会导致意想不到的结果。例如,如果另一个用户已经删除了一条记录,调用Refresh后,这条记录将从数据控件中消失。

  显示单个字段的数据控件

  有的数据控件以数据库的一个或几个字段作为工作内容,如TDBText和TDBEdit,而有的数据控件以整个数据集为工作内容,如TDBGrid和TDBNavigator。显示单个字段的数据控件往往是从一个标准的Windows控件演化而来的,例如,TDBEdit构件就可以认为是TEdit的数据感知版本。

  1、把数据作为标签显示

  TDBText构件是一个只读的数据控件,它非常类似于TLabel构件和TStaticText构件。TDBText构件能够把数据作为标签显示,用来标注其他控件。例如,可以用一个TDBText构件显示名称(Common_Name字段)。

  TDBText构件需要指定一个字段。当用户使用导航器或其他手段浏览记录时,TDBText构件显示的数据将自动变化,因为TDBText构件总是显示当前记录的数据。

  TDBText构件的AutoSize属性一般要设为True,这是因为字段的内容长度可能是不同的。如果AutoSize属性设为False,有些较长的内容可能会被截断。

  2、显示和编辑数据

  TDBText构件只能显示数据,不能编辑数据。要既能显示数据,又能编辑数据,就要用到TDBEdit构件。TDBEdit可以认为是TEdit的数据感知(Data-Aware)版本。例如,有一个TDataSource构件叫CustomersSource,它的DataSet属性指向一个TTable构件叫CustomersTable。把一个TDBEdit构件放在窗体上,其DataSource属性设为CustomersSource,把它的DataField属性设为CustNo。这个TDBEdit构件马上就能显示CustNo字段的值。用户可以在编辑框中键入新的值。

  显示和编辑多行文本

  TDBMemo构件是TMemo构件的数据感知版本,可以显示dBASE和Paradox数据库中备注字段的内容。
与TDBEdit不同的是,TDBMemo能够以多行的形式显示文本,同时也允许用户键入多行文本。

  默认情况下,TDBMemo允许用户修改它显示的文本。如果不想让用户修改文本,只要把ReadOnly属性设为True即可。

  要允许用户在文本中插入一个制表符,应当把WantTabs属性设为True,否则,当用户按下Tab键,将把输入焦点移走,而不是插入制表符。要限制用户最多可输入的字符数,可以设置MaxLength属性。如果这个属性设为0,表示没有限制。

  此外,ScrollBars属性可以设置要不要加上滚动栏,WordWrap属性可以设置是否允许自动绕回,Alignment属性可以设置文本的对齐方式。在运行期,您可以调用CutToClipboard和CopyToClipboard函数把选择的文本剪切和复制到剪贴板中,调用PasteFromClipboard能够粘贴剪贴板中的文本。

  如果AutoDisplay属性设为True,当DataField属性所指定的字段的内容改变了时,TDBMemo构件会自动刷新。如果AutoDisplay属性设为False,TDBMemo构件上只显示字段名,用户必须双击这个构件或程序调用LoadMemo才能刷新数据。

  以RTF格式显示文本

  TDBRichEdit构件可以认为是TRichEdit构件的数据感知版本,用于以RTF格式显示BLOB字段中的格式化文本。它的用法类似于TDBMemo构件,也能显示多行文本。

  注意:尽管TDBRichEdit构件能够显示RTF格式的文本,并且提供了很强的编辑功能,但是,它本身并没有提供用户界面,应用程序必须设计出相应的用户界面,才能把TDBRichEdit 构件强大的功能发挥出来。
默认情况下,TDBRichEdit构件允许用户键入新的文本。如果不想让用户修改文本,可以把ReadOnly属性设为True。要允许用户在文本中插入一个制表符,应当把WantTabs属性设为True,否则,当用户按下Tab键,将把输入焦点移走,而不是插入制表符。

  要限制用户最多可输入的字符数,可以设置MaxLength属性。如果这个属性设为0,表示没有限制。如果AutoDisplay属性设为True,当DataField属性所指定的字段的内容改变了时,TDBRichEdit构件会自动刷新。如果AutoDisplay属性设为False,TDBRichEdit构件上只显示字段名,用户必须双击这个构件或程序调用LoadMemo函数才能刷新数据。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章