• delphi完美经典--第十八章


    第18章数据感知组件

    一、TDBText组件

    用来以只读、一次一条记录的方式,显示DataSet中的某一字段值。因同样继承自TCustomLabel,TDBText组件除了数据感知功能外,与标准组件TLabel几乎一模一样。

    DataField:设置或取得对应到数据源的字段名称。

    DataSource:设置或取得TDBText组件连接到哪一个DataSet的数据源。

    二、TDBEdit组件

    与TDBText类似,用来显示单一记录的单一字段;不同的是,只要数据库允许,它可编辑修改对应的字段。继承自TCustomMaskEdit,与TEdit、TMaskEdit有很多共性。

    DataField和DataSource:同上。

    Field:设置或取得字段值。

    ReadOnly:True可避免数据源的数据被改变。设为False并不保证数据可被更改,数据源允许更改时,如TQuery的RequestLive设为True,同时ReadOnly设为False,数据源的对应字段值才能被改变。

    Clear方法:清除组件内容。同样的,被清除的内容是否保存回数据源,必须由数据源允许写入与目前DataSet的状态决定。

    三、TDBMemo组件

    与TMemo同继承自TCustomMemo,因此,除了数据感知功能外,与标准TMemo也几乎一样。TDBMemo主要用来显示、连接较长的文本字段。

    AutoDisplay:用来设置或取得是否自动显示字段数据。设为False时,仅显示字段名称,双击才显示字段数据。Delphi7中未发现设为False起作用。

    LoadMemo方法:用来调入TDBMemo的内容。

    四、TDBImage组件

    用来显示或提供修改数据源的大型二进制字段数据(BLOB),与TDBMemo类似,除非真的有此需求,否则,应避免使用这样的组件,因它比较耗用系统资源。

    五、TDBListBox组件

    用来显示或提供列表让用户可以通过列表选择输入数据。当DataSet允许修改时,改变列表项目会直接更新DataSet中的字段值。

    Items属性。

    六、TDBComboBox组件

    用来显示或提供下拉式菜单,让用户可通过下拉式菜单选择输入数据。当DataSet允许修改时,改变列表项目会直接更新DataSet中的字段值。

    Items属性。

    AutoComplete:当用户于TDBComboBox文本列表输入文字时,会从Items中找出符合的项目,并自动完成未输入的文字。

    AutoDropDown:当用户以键盘开始输入时,会自动下拉菜单。

    Style:决定TDBComboBox的外观与行为。其值如下:

    Ø  csDropDown:可接受用户输入文字,且各项高度相同。

    Ø  csDropDownList:与csDropDown相同,但无文本输入列表。

    Ø  csOwnerDrowFixed:无文本输入列表,项目高度由ItemHeight决定。

    Ø  csOwnerDrawVariable:无文本输入列表,允许各项目不同高度。

    Ø  csSimple:没有下拉式图标(倒三角形),但允许输入文字。

    OnMeasureItem:在一个csOwnerDrawVariable状态的TDBComboBox的下拉式菜单,需再次重画显示时触发。

    七、TDBLookupList与TDBLookupComboBox组件

    TDBLookupList用来实时显示另一个DataSet的相对应字段值。举例说明下:数据库中的两个表:

    对图1:左侧是TDBGrid控件,显示的是表1的数据;右侧是TDBLookupList控件。要想达到这个目的:在TDBGrid中选择任意一项时,TDBLookupList中显示TDBGrid选中行对应的学号所关联的姓名字段。反之也成立。

    DataField和DataSource:DataSource用来指定跟随哪一个DataSource变动。上例中,DataSource应与TDBGrid的DataSource相同。

    KeyField(关联字段):指定ListSource和DataSource的关联字段。

    ListField(要显示的关联字段):指定ListSource显示的字段名称。ListField通常会设置多个字段,这也是TDBLookupList控件的最大特色,同时显示多个相关字段,方便用户输入。ListField的各字段名称间,使用分号隔开。

    ListFieldIndex:当ListField设置多个字段时,ListFieldIndex用来指定其显示的字段字符串(SelectedItem),对DBLookupList来说,除非明确调用SelectedItem属性,只要关联字段、DataField等设置妥当,ListFieldIndex没什么用。

    ListSource(关联数据源):用来提供显示字段的数据源。

    八、TDBNavigator组件

    ConfirmDelete:设置删除操作是否需以对话框询问。

    VisibleButtons:VisibleButtons集合类型用来设置TDBNavigator组件各按钮是否显示,默认全部显示。

    SetBounds方法:一次设置TDBNavigator组件的Left、Top、Width与Height属性。

    BeforeAction和OnClick事件:OnClick发生在按钮按下后,其对应的操作已完成。如,按下删除按钮,OnClick触发时,删除操作早已完成。不同于OnClick,BeforeAction触发在按钮对应的操作正要发生时,因此,常用此事件,处理询问或控制操作是否继续。

    Abort和Exit:在BeforeAction中用Abort可阻止指定操作(比如删除)执行,Exit无此作用。

    九、TDBGrid组件

    Columns:此属性对应到TDBGrid由DataSource取得的字段数据。它是TColumn的集合。TColumn允许对字段数据设置显示名称、字段宽度、文字对齐方式、底色、字体等。

    常用属性:

    Options:由一组集合常量设置TDBGrid的外观及行为。其可能值如下:

    Ø  dgEditing:允许编辑。当Options包含dgRowSelect时,dgEditing失效。

    Ø  dgAlwaysShowEditor:点选网格立即进入编辑模式,当不设置dgAlwaysShowEditor时,必须按[Enter]或[F2]才能编辑。Options包含dgEditing且不包含dgRowSelect时,此属性才起作用。

    Ø  dgRowSelect:是否允许整列显示。若允许,则dgEditing和dgAlwaysShowEditor失效。

    dgIndicator:是否显示记录指针符号。即

    Ø  图中黑三角。

    Ø  dgColumnResize:同时控制栏宽能否改变、字段是否允许移位。

    Ø  dgRowLines和dgColLines:垂直/水平的列间是否显示网格间隔线。

    Ø  dgAlwaysShowSelect:即使焦点不在网格,网格仍被选取。

    SelectedField:设置或取得目前被选取的网格所在的Field。

    SelectedIndex:设置或取得被选取网格的字段索引值,当整列选取时,返回0。

    SelectedRows:用来记录所有被选取的记录行。此属性必须在Options包含dgRowSelect和dgMultiSelect时有效。

    常用事件:

    OnCellClick:编辑模式不会触发。

    OnDrawColumnCell和OnDrawDataCell:重绘时触发。OnDrawColumnCell用来取代OnDrawDataCell,所有不要两个同时设置。
    ---------------------
    作者:温水煮青蛙come-on
    来源:CSDN
    原文:https://blog.csdn.net/mwj_88/article/details/9164711
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    [TC_SRM_466]DrawingBlackCrosses
    [POJ3254]Corn Fields
    [openjudge6043]哆啦A梦的时光机
    网络流 24 题汇总(LOJ 上只有 22 题???)
    Xadmin组件的url设计
    《今日简史》一、旧故事已然崩坏,新故事尚未构建
    《人类简史》二、认知革命——上帝之手的秘密
    ORM复习
    无拘无束的爱情
    使用代理导致IE host被修改问题的解决方案
  • 原文地址:https://www.cnblogs.com/jijm123/p/10247445.html
Copyright © 2020-2023  润新知