第十六章 数据浏览部件的应用及编程(二)_第1页
第十六章 数据浏览部件的应用及编程(二)_第2页
第十六章 数据浏览部件的应用及编程(二)_第3页
第十六章 数据浏览部件的应用及编程(二)_第4页
第十六章 数据浏览部件的应用及编程(二)_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在TDBGrid 部件中显示数据库表中的记录信息时,如果TDBGrid 使用数据集部件在运行过程中动态生成的字段部件时,TDBGrid 显示数据库表中的记录是按表中记录的缺省顺序和字段的缺省顺序显示表中的记录信息,而且要显示表中各个记录的全部字段的值。而在大多数情况下,用户可能希望按自己喜欢的字段顺序显示记录的各个字段,有时还希望只显示记录的部分字段值,要达到这一目的,必须在设计阶段使用字段编辑器来创建永久性的字段部件,并且还要设置各个字段部件有关的属性。TDBGrid 部件是用于显示和编辑数据库表中的记录信息的重要部件,它是我们在程序设计过程当中要经常使用的、灵活地用于显示和编辑数据库表中的

2、记录信息的一个强有力的工具。TDBGrid 具有很多重要的属性,我们可以在程序设计阶段和程序运行过程中进行设置。TDBG rid 部件的一些重要属性及其设置方法请参看联机帮助文件。TDBGrid 部件中一些重要的属性是Option 属性、DrawMode 属性和DefaultDrawing 属性,我们重点对两个属性进行阐述。 Options 属性:它是TDBGrid 部件的一个扩展属性,在程序设计阶段设置Options 属性可以控制TDBGrid 部件的显示特性和对事件的响应特性。Options 属性在TDBGrid 部件的属性栏中显示时,它的前面带有一个“”标志,双击“”标志,便可以展开一个

3、布尔型属性列表,用户可以逐个地修改其中的各个属性值,修改完毕后可以双击Options 属性前的“”标志,使TDBGrid 部件的属性列表恢复到原来的显示状态。表16.5列出了Options 属性中包含的所有的扩展属性项以及它们对TDBGrid 部件的影响。表16.5 TDBGrid部件的Options 属性中的扩展属性项属 性 名 取 值 及 影 响dbEditing True: 缺省情况下为此值,确保用户能够在网格中编辑插入和删除数据库表中的记录False:在网格中不能编辑、插入和删除表中的记录dbAlwaysShow True: 当用户选中记录中的一个字段时,自动地使该字段Editor 处

4、于编辑状态False:缺省情况下为此值。当一个字段被选中,它不能自动地变成编辑状态dgTitles True: 缺省情况下为此值。在网格的第一行中显示字段名或字段标题False:在网格中不显示字段名或字段对应的标题dgIndicator True: 缺省情况下为此值。在网格的最左边用一个黑箭头标注当前记录指针所在的位置,在插入状态时,箭头变成星状,在编辑状时,箭头变成"I" 头。False:在网格中不标识当前记录指针的位置dgColumnResize True: 缺省情况下为此值。通过拖拉网格的垂直分隔线可以改变网格中各列的宽度,在具体操作时要拖拉各列中显示字段标题区域中的

5、垂直分隔线。False:网格中各列的宽度不能改变dgCloLines True: 缺省情况下为此值。在网格中显示各列之间的垂直分隔线。False:在网格中不显示垂直分隔线dgRowLines True: 缺省情况下为此值。在网格中显示各行之间的水平分隔线。False:在网格中不显示水平分隔线。dgTabs True: 缺省情况下为此值。可以在记录的各字段之间移动输入焦点(也即选择提示棒False:不能在记录的名字段之间移动输入焦点,在网格中按Tab 键时,直接跳出网格dgRowSelect True: 选择提示棒覆盖整条记录中的全部字段False:缺省情况下为此值。选择提示棒一次只覆盖记录中的

6、一个字段dgAlwaysShow True: 缺省情况下为此值。在网格始终显示选择提示棒,即-Selection 使其控件获得焦点时,也是如此。False:只在当网格获得焦点时,才显示选择提示棒。dbConfirmDelete True: 缺省情况下为此值。当在网格中删除记录时,弹出确认信息。False:在网格中删除记录时不弹出确认信息。用户想了解这些可选属性项的作用和影响,还可以参看联机帮助信息。DragMode 属性:该属性有两个可选的属性值。当它的值被设置为dmManual 时,在应用程序运行过程中,用户可以用鼠标拖放网格中的各列,改变各列在网格中的显示顺序和位置。当用鼠标拖放网格中的一

7、列、改变它在网格中的位置时,只是改变了该列在数据集中的位置,并没有改变它对应的数据库表中的位置。当该属性的值被设置成dmAutomatic 时,用户不能用鼠标拖放网格中的各列而改变它在网格中的位置。表16.6 各部件的属性设置属 性 名 属 性 值Table1.DatabaseName DEMOSTable1.TableName Customer.DBTable1.CanModify TrueDataSource1.DataSet Table1DataSource1.AutoEdit TrueDBGrid1.Datasource DataSource1DBGrid1.ReadOnly Fals

8、e在其他数据浏览部件(如TDBEdit 中编辑修改其中的内容时,只要用户用Tab 键或鼠标将焦点移到其他部件时,用户对该字段的修改会自动地写回到数据库表中,使用TDBGrid 部件编辑修改数据库表时,Delphi 是以记录为基本单位将修改写回磁盘上的数据库表的。用户在编辑和修改表中的当前记录时,只有用户将记录指针移到其他的记录时,Delphi 才将用户对当前记录的修改写回到磁盘上的数据库表,否则,用户即使改变焦点到窗体中的其他部件,Dephi 也不会投寄用户对当前记录的修改。Delphi 在向数据库表投寄TDBGrid 部件中的被修改的记录时,它会自动地检查所有与当前数据库相连的数据浏览部件的

9、状态,只要其中有任何一数据浏览部件正在修改数据,这时会弹出出错信息,并且当前记录的修改不会被投寄(即被写回磁盘上的数据库表 。TDBGrid 部件在具有很多重要属性的同时,Delphi 也为它赋予了一些事件,以用于控制用户在TDBGrid 部件中的操作,我们通过为其中的一些事件编写处理程序,可以有效地控制TDB Grid 部件的行为。因为在TDBGrid 部件中一次是显示多条记录和记录中的多个字段,也许在实际应用中,不同的用户各有自己特殊的需要,如只想改变其中某一列的值或者控制用户每次只能进出网格中指定的列等等。表16.7列出了TDBGrid 部件的主要事件及目的用途。表16.7 TDBGri

10、d部件中的主要事件事 件 名 目 的 用 途OnColEntor 当用户进入网格各列时,触发该事件OnColExit 当用户离开网格各列时,触发该事件OnDblClick 当用户在网格中双击鼠标左键时,触发该事件OnDragDrop 当用户在网格中用鼠标进行拖放操作时,触发该事件OnDragOver 当用户在网格中用鼠标拖动网格时,触发该事件OnDrawDataCell 用于定制绘制网格中各网格单元,当向网格中填充数据时触发该事件OnEndDrag 当用户停止拖动网格时,触发该事件OnEnter 当网格获得焦点时,触发该事件OnExit 当网格失去焦点时,触发该事件OnKeyDown 当用户在

11、网格中按下任何键或组合键时,触发该事件OnKeyPress 当用户在网格中按了任何一个数字键或字母键时,触发该事件OnKeyUp 当用户在网格中释放任何被按下的键时,触发该事件上述这些事件在我们开发实际的应用程序时,是很有用处的,读者们可以仔细地研究这些事件的用途,并参看联机帮助信息。其中ListBox1的Items 属性写入上述国家的名称,并且设置其Visible 属性为False 。6.5 TDBNavigator部件及其应用TDBNavigator 部件主要用于在数据集中进行记录导航和为用户操纵数据集中的记录提供了一组简单明了的控制按钮。TDBNavigator 部件中包含一组控制按钮,

12、用户单击其中的按钮可以向前向后移动记录指针、插入记录、修改现存记录、投寄对记录的修改、取消修改、删除记录;以及刷新记录的显示等。图16.7为TDBNavigator 部件中的控制按钮。下表描述了TDBNavigator 部件中的各个控制按钮。表16.8 TDBNavigator部件中的控制按钮按钮名称 主 要 功 能First 将当前记录指针移到数据库表中第一条记录处Prior 将记录指针移到当前记录的前一条记录处Next 将记录指针移到当前记录的后一条记录处Last 将当前记录指针移到数据库表中最后一条记录处Insert 调用数据集部件的Insert 方法,在当前记录的前面插入一条新记录,并

13、将数据集部件置为插入状态Delete 删除当前记录,如果TDBNavigator 部件的ConfirmDelete属性设置为true 时,会弹出删除确认对话框Edit 将数据集部件置为编辑状态,以便用户修改当前的记录Post 投寄对当前记录的修改Cancel 取消对当前记录的修改,并将数据集部件置为浏览状态Refresh 清除数据浏览部件的显示缓冲区,并用与其相连的数据集部件(TTable或TQuery 中的记录刷新显示缓冲区。TDBNavigator 部件的属性较少。下面我们作一简单的介绍:TDBNavigator 部件的一个重要属性是VisibleButtons 属性,该属性中包含着多个可

14、选的扩展子属性,主要用于选择TDBN avigator 部件中各个控制按钮的显示与否的。因为在实际的应用当中,我们并不需要那么多的控制按钮。如在一个浏览数据库表的应用中,我们一般只需要First 、Prior 、Next 、L ast 四个按钮就行了,那么我们便在VisibleButtons 属性中设置其它的按钮为False 即可。 ShowHint 属性:该属性是布尔型属性,它用于控制是否显示TDBNavigator 部件中各按钮的动态提示信息。缺省情况下该属性的值为False ,当设置它的值为True 时,当用户将鼠标光标停留在TDBNavigator 部件中某一个控制按钮上,超过1秒钟时

15、间后,Delphi 便会自动显示有关该控制按钮的提示信息。Hints 属性:在缺省情况下,TDBNavigator 部件中的各控制按钮都有相应的动态提示信息,如First 、Prior 、Next 、Last 等,用户可以根据自己的需要,通过设置Hints 属性可以为各控制按钮设置其他的动态提示信息,用户自己设置的动态提示信息会覆盖原来的提示信息。16.6 TDBMemo部件及其应用TDBMemo 部件主要用于显示和编辑数据库表中的大二进制(BLOB类型的字段值。TDBMemo 部件能够显示多行文本,也允许用户在其中输入和修改多行文本信息,它是Delphi 中用来显示和编辑数据库表中的大二进制

16、类型的文本字段的唯一的数据浏览部件。TDBMemo 部件的主要属性和作用如下:ReadOnly 属性:这是布尔型属性,为True 时,用户只能在TDBMemo 部件中显示BLOB 型文本信息,如Paradox 和dBASE 数据库表中的备注型字段。当为False 时,用户在TDBMemo 部件中不仅可以显示BLOB 文本信息而且还允许用户编辑修改其中的文本信息。MaxLength 属性:该属性是整数型属性,设置该属性的值用于限制用户向TDBMemo 部件中输入字符的个数。若设置该值为0时,表示输入字符的个数没有限制。SCrollBar 属性:说明TDBMemo 部件是否显示滚动条。WordWr

17、ap 属性:说明在TDBMemo 部件中输入文本信息时,输入到右边界时,是否自动换行。 Alignment 属性:说明文本信息在TDBMemo 部件中的对齐方式,有三种可选值:taLeftJust ify 、taCenter 和taRightJustify 。其含义分别是左对齐,居中和右对齐。在运行过程中,用户对TDBMemo 部件中显示的文本信息是不能够进行剪切、拷贝和粘贴操作的,要想具备这些功能,用户必须编程调用CutToClipboard 、CopyToClipboard 和PasteF romClipboard 方法分别来实现剪切,拷贝和粘贴操作。AutoDisplay 属性:因为TD

18、BMemo 部件中包含着大量的文本信息。应用程序在运行过程中要显示其中的信息需要花费很多的时间,特别是当用户移动记录指针时,都要更新TDBMemo 部件中显示的信息,这样会大大减慢程序的运行速度。为此Delphi 为TDBMemo 部件设定了AutoDisplay 属性,用来控制是否自动显示表中的备注型字段。当AutoDisplay 设置为Fal se 时,在TDBMemo 部件中只显示其对应表中的字段名而不显示字段中的文本信息,用户如果想浏览字段中的文本信息,用鼠标左键双击TDBMemo 部件的内部即可;当设置AutoDispl ay 属性为True 时,在TDBMemo 部件中会自动地显示

19、其对应数据库表中的字段值。这里要注意的是,TDBMemo 部件中显示和编辑文本信息的最大字节数为32K ,在使用过程中不要超过这一限制。图16.8是TDBMemo 显示数据库表中备注型字段的情形。该例子在C:DelphiDEMOSDA子目录中,项目名称为FashFact.dpr 。用TDBMemo 部件显示备注型字段16.7 TDBImage部件及其应用TDBImage 部件与TDBMemo 部件具有很多相似的属性,它是用来显示和编辑数据库表中的B LOB 类型的位图图像字段的。图16.8中同时也使用了一个TDBImage 部件来显示数据库表中的位图图像。缺省情况下,在TDBImage 部件中

20、是允许用户对位图图像进行编辑的,如将图像剪切或拷贝到剪帖板上或从剪帖板上粘帖到TDBImage 部件中等操作,同时也可以在程序中调用CutToC lipboard 、CopyToClipboard 和PasteFromClipboard 方法来实现剪切、拷贝、粘帖操作,当然要进行上述操作必须确保TDBImage 的ReadOnly 属性值为False 。TDBImage 部件也具有一个AutoDisplay 属性,该属性的控制和作用与TDBMemo 部件的Auto Display 属性是一样的。16.8 数据浏览部件中的列表框和组合框在数据浏览部件中有四个部件类似于标准部件中的列表框和组合框,

21、这些列表框和组合框主要是在数据库应用程序中为用户提供一系列的可选择的字段值。注意这些部件只能与TTabl e 部件配合使用,而不能与TQuery 部件配合使用。表16.9 数据浏览部件中的列表框和组合框部 件 名 用 途TDBlistBox 在用户修改当前记录中指定的字段值时,可用该部件显示一个字段值列表供用户选择TDBComboBox 把一个TDBEdit 部件与一个可选的字段值列表结合在一起,当用户修改当前记录中的字段时,可以直接从部件中输入新的字段,也可以打开下拉式列表框选择其中的一个可选项。TDBLookapList 当用户要编辑修改数据库表当前记录的指定字段时,使用该部件提供多个可选

22、项,这多个可选项是从相关的其它数据库表中读取的,且以列表框的形式提供给用户TDBLookupCombo 该部件结合了TDBEdit 部件和TDBComboBOx 部件的功能,用户可以直接向该部件中输入字段值,也可以从下拉式列表框中选择一个可选项,只是下拉式列表框中的可选项是从相关的其他数据库表中读取来的。16.9 TDBComboBox部件 TDBComboBox 部件中包含了TDBEdit 部件的全部功能,它们具有相似性,不同的是在运行过程中TDBComboBox 部件同时有一个下拉式列表框,在下拉式列表框中有一组可供选择的项供用户选择,这些可选项是在设计阶段由程序设计人员提供给TDBCom

23、boBox 部件的Items 属性的。图16.9是TDBComboBox 部件的下拉式列表框中的内容,注意TDBComboBox 部件一定要对应数据库表中的一个字段。图16.9 TDBComboBox部件在运行过程中TDBComboBox 部件的一个重要的属性是Items 属性,该属性中包含着TDBComboBox 部件在运行过程中下拉式列表框中的可选项,Items 中的内容可以在设计阶段指定。如果一个TDBComboBox 部件对应着数据库表中一个字段,那么当用户要编辑修改该字段中的值时,可以打开下拉式列表框,从中选择一个可选项作为字段值,也可以自己在TDBComboB ox 部件中输入一个

24、其他的字段值。TDBComboBox 部件还有下列一些重要的属性,主要用来控制TDBComboBox 部件的显示模式和风格的。Style 属性:控制TDBComboBox 部件列表框的显示格式的,当它的取值为: CSDropDown缺省情况下为此值,显示一个下拉式列表框和一个编辑框,下拉式列表框中的可选项都是字符串且各选择项占居的高度一样。 CsSimple只显示一个列表框,列表框中的可选项都是字符串,且各选项占居一样的高度。 CSDropDownList 显示一个下拉式列表框和一个编辑框,但用户不能向编辑框中输入一个在列表框中没有的 值. CSOwnerDrawFixed 和 CSOWnerDrawVariable 在列表框中不仅有字符串选项而且还允许有其他类型的选项, 如位图图像等, 这方面的详细 信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论