⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 040.htm

📁 delphi教程
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>—DELPHI基础教程—第十六章   数据浏览部件的应用及编程(二)</TITLE><META NAME="keywords" CONTENT=" DELPHI基础教程 第十六章   数据浏览部件的应用及编程(二)"><META NAME="description" CONTENT=" - DELPHI基础教程 - 第十六章   数据浏览部件的应用及编程(二)"><style><!--#page {position:absolute; z-index:0; left:0px; top:0px}.tt3 {font: 9pt/12pt "宋体"}.tt2 {font: 12pt/15pt "宋体"}a {text-decoration:none}a:hover {color: blue;text-decoration:underline}--></style></HEAD><body text="#000000"  bgcolor="#FFFFFF" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3"><TABLE WIDTH="100%" CELLPADDING=10 CELLSPACING=0 BORDER=0><TR><TD CLASS="tt3" VALIGN="top" width="8%"  ><strong><A HREF="041.htm"><FONT style="FONT-SIZE: 9pt">后一页</font></A><BR><A HREF="039.htm"><FONT style="FONT-SIZE: 9pt">前一页</font></A><BR><A HREF="index.html"><FONT style="FONT-SIZE: 9pt">回目录</font></A><BR></strong></TD><TD class="tt2"  width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="隶书">第十六章   数据浏览部件的应用及编程(二)</FONT></B></center><hr  width="94%"></font><p>在TDBGrid部件中显示数据库表中的记录信息时,如果TDBGrid使用数据集部件在运行过程中动态生成的字段部件时,TDBGrid显示数据库表中的记录是按表中记录的缺省顺序和字段的缺省顺序显示表中的记录信息,而且要显示表中各个记录的全部字段的值。而在大多数情况下,用户可能希望按自己喜欢的字段顺序显示记录的各个字段,有时还希望只显示记录的部分字段值,要达到这一目的,必须在设计阶段使用字段编辑器来创建永久性的字段部件,并且还要设置各个字段部件有关的属性。</p><p>当使用字段编辑器(Fields Editor)创建永久性的字段部件提供给TDBGrid部件来使用时,我们可以在TDBGrid部件中更灵活地显示数据库表中的记录信息。例如在字段编辑器中的Fields列表框中我们可以设定字段部件的显示顺序,在设定好字段的显示顺序之后,TDBGrid部件便按这个顺序显示记录的各个字段值,当我们设置字段部件的DisplayFormat和EditFormat属性之后,在TDBGrid部件中便相应地以设定的显式和编辑格式显示字段值和编辑字段值;当设置某一个字段部件的Required属性为True时,当插入一条新记录时,必须要为该字段输入相应的字段值,否则会出错;通过设置字段部件的Visible属性,可以确定相应的字段值是否在TDBGrid组件中显示。有关使用字段编辑器来创建字段部件,设置字段部件的属性请参看3.6.2节。 </p><p>16.4.1 TDBGrid部件的主要属性及应用 </p><p>TDBGrid部件是用于显示和编辑数据库表中的记录信息的重要部件,它是我们在程序设计过程当中要经常使用的、灵活地用于显示和编辑数据库表中的记录信息的一个强有力的工具。TDBGrid具有很多重要的属性,我们可以在程序设计阶段和程序运行过程中进行设置。TDBGrid部件的一些重要属性及其设置方法请参看联机帮助文件。TDBGrid部件中一些重要的属性是Option属性、DrawMode属性和DefaultDrawing属性,我们重点对两个属性进行阐述。</p><p>Options属性:它是TDBGrid部件的一个扩展属性,在程序设计阶段设置Options属性可以控制TDBGrid部件的显示特性和对事件的响应特性。Options属性在TDBGrid部件的属性栏中显示时,它的前面带有一个“+”标志,双击“+”标志,便可以展开一个布尔型属性列表,用户可以逐个地修改其中的各个属性值,修改完毕后可以双击Options属性前的“-”标志,使TDBGrid部件的属性列表恢复到原来的显示状态。</p><p>表16.5列出了Options属性中包含的所有的扩展属性项以及它们对TDBGrid部件的影响。 </p><p>表16.5 TDBGrid部件的Options属性中的扩展属性项</p><p>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</p><p>属 性 名 取 值 及 影 响 </p><p>─────────────────────────────────</p><p>dbEditing True: 缺省情况下为此值,确保用户能够在网格中编辑插</p><p>入和删除数据库表中的记录</p><p>False:在网格中不能编辑、插入和删除表中的记录</p><p>─────────────────────────────────</p><p>dbAlwaysShow True: 当用户选中记录中的一个字段时,自动地使该字段</p><p>Editor 处于编辑状态</p><p>False:缺省情况下为此值。当一个字段被选中,它不能</p><p>自动地变成编辑状态</p><p>─────────────────────────────────</p><p>dgTitles True: 缺省情况下为此值。在网格的第一行中显示字段名</p><p>或字段标题</p><p>False:在网格中不显示字段名或字段对应的标题</p><p>─────────────────────────────────</p><p>dgIndicator True: 缺省情况下为此值。在网格的最左边用一个黑箭头</p><p>标注当前记录指针所在的位置,在插入状态时,箭</p><p>头变成星状,在编辑状时,箭头变成&quot;I&quot;头。</p><p>False:在网格中不标识当前记录指针的位置</p><p>─────────────────────────────────</p><p>dgColumnResize True: 缺省情况下为此值。通过拖拉网格的垂直分隔线可</p><p>以改变网格中各列的宽度,在具体操作时要拖拉各</p><p>列中显示字段标题区域中的垂直分隔线。</p><p>False:网格中各列的宽度不能改变</p><p>─────────────────────────────────</p><p>dgCloLines True: 缺省情况下为此值。在网格中显示各列之间的垂直</p><p>分隔线。</p><p>False:在网格中不显示垂直分隔线</p><p>─────────────────────────────────</p><p>dgRowLines True: 缺省情况下为此值。在网格中显示各行之间的水平</p><p>分隔线。</p><p>False:在网格中不显示水平分隔线。</p><p>─────────────────────────────────</p><p>dgTabs True: 缺省情况下为此值。可以在记录的各字段之间移动</p><p>输入焦点(也即选择提示棒)</p><p>False:不能在记录的名字段之间移动输入焦点,在网格中</p><p>按Tab键时,直接跳出网格</p><p>─────────────────────────────────</p><p>dgRowSelect True: 选择提示棒覆盖整条记录中的全部字段</p><p>False:缺省情况下为此值。选择提示棒一次只覆盖记录中</p><p>的一个字段</p><p>─────────────────────────────────</p><p>dgAlwaysShow True:缺省情况下为此值。在网格始终显示选择提示棒,即</p><p>-Selection 使其控件获得焦点时,也是如此。</p><p>False:只在当网格获得焦点时,才显示选择提示棒。</p><p>─────────────────────────────────</p><p>dbConfirmDelete True:缺省情况下为此值。当在网格中删除记录时,弹出确</p><p>认信息。</p><p>False:在网格中删除记录时不弹出确认信息。</p><p>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</p><p> </p><p>用户想了解这些可选属性项的作用和影响,还可以参看联机帮助信息。</p><p>DragMode属性:该属性有两个可选的属性值。当它的值被设置为dmManual时,在应用程序运行过程中,用户可以用鼠标拖放网格中的各列,改变各列在网格中的显示顺序和位置。当用鼠标拖放网格中的一列、改变它在网格中的位置时,只是改变了该列在数据集中的位置,并没有改变它对应的数据库表中的位置。当该属性的值被设置成dmAutomatic时,用户不能用鼠标拖放网格中的各列而改变它在网格中的位置。</p><p>DefalultDrawing属性:该属性是布尔型属性,它用于控制网格中各网格单元的绘制方式。在缺省情况下,该属性的值为True,也就是说Delphi使用网格本身缺省的方法绘制网格中各网格单元,并填充各网格单元中的内容,各网格单元中的数据根据其对应的字段部件的DisplayFormat属性和EidtFormat属性进行显示和绘制。如果DefaulDrawing属性被设置为False时,Delphi不会自动地绘制网格中各网格单元和网格单元中的数据,用户必须自己为TDBGrid部件的OnDrawDataCell事件编写相应的程序用于绘制各网格单元和其中的数据。</p><p>在了解了TDBGrid部件的各个属性之后,我们便可以使用TDBGrid部件来显示和编辑数据库表中的数据了。图16.5所示的应用窗体中各部件的属性设置如表16.6所示。</p><p> </p><p>表16.6 各部件的属性设置</p><p>━━━━━━━━━━━━━━━━━━━━</p><p>属 性 名 属 性 值</p><p>────────────────────</p><p>Table1.DatabaseName DEMOS</p><p>Table1.TableName Customer.DB</p><p>Table1.CanModify True</p><p>DataSource1.DataSet Table1</p><p>DataSource1.AutoEdit True</p><p>DBGrid1.Datasource DataSource1</p><p>DBGrid1.ReadOnly False</p><p>━━━━━━━━━━━━━━━━━━━━</p><p> </p><p>在其他数据浏览部件(如TDBEdit)中编辑修改其中的内容时,只要用户用Tab键或鼠标将焦点移到其他部件时,用户对该字段的修改会自动地写回到数据库表中,使用TDBGrid部件编辑修改数据库表时,Delphi是以记录为基本单位将修改写回磁盘上的数据库表的。用户在编辑和修改表中的当前记录时,只有用户将记录指针移到其他的记录时,Delphi才将用户对当前记录的修改写回到磁盘上的数据库表,否则,用户即使改变焦点到窗体中的其他部件,Dephi也不会投寄用户对当前记录的修改。Delphi在向数据库表投寄TDBGrid部件中的被修改的记录时,它会自动地检查所有与当前数据库相连的数据浏览部件的状态,只要其中有任何一数据浏览部件正在修改数据,这时会弹出出错信息,并且当前记录的修改不会被投寄(即被写回磁盘上的数据库表)。</p><p> </p><p>16.4.2 TDBGrid部件的事件及应用</p><p> </p><p>TDBGrid部件在具有很多重要属性的同时,Delphi也为它赋予了一些事件,以用于控制用户在TDBGrid部件中的操作,我们通过为其中的一些事件编写处理程序,可以有效地控制TDBGrid部件的行为。因为在TDBGrid部件中一次是显示多条记录和记录中的多个字段,也许在实际应用中,不同的用户各有自己特殊的需要,如只想改变其中某一列的值或者控制用户每次只能进出网格中指定的列等等。表16.7列出了TDBGrid部件的主要事件及目的用途。</p><p> </p><p>表16.7 TDBGrid部件中的主要事件</p><p>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</p><p>事 件 名 目 的 用 途</p><p>────────────────────────────────</p><p>OnColEntor 当用户进入网格各列时,触发该事件</p><p>OnColExit 当用户离开网格各列时,触发该事件</p><p>OnDblClick 当用户在网格中双击鼠标左键时,触发该事件</p><p>OnDragDrop 当用户在网格中用鼠标进行拖放操作时,触发该事件</p><p>OnDragOver 当用户在网格中用鼠标拖动网格时,触发该事件</p><p>OnDrawDataCell 用于定制绘制网格中各网格单元,当向网格中填充数</p><p>据时触发该事件</p><p>OnEndDrag 当用户停止拖动网格时,触发该事件</p><p>OnEnter 当网格获得焦点时,触发该事件</p><p>OnExit 当网格失去焦点时,触发该事件</p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -