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

📄 038.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" aLink=#9900ff link=#006699 vLink=#006699 background="bg.gif" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">

<TR>
<TD CLASS="tt3" VALIGN="top" width="8%"  background="bg.gif"><strong><A HREF="039.htm" ><FONT style="FONT-SIZE: 9pt">后一页</font></A><BR>
<A HREF="037.htm" ><FONT style="FONT-SIZE: 9pt">前一页</font></A><BR>

<A HREF="index.html" ><FONT style="FONT-SIZE: 9pt">回目录</font></A><BR>
<A HREF="../../../../../index.htm"><FONT style="FONT-SIZE: 9pt">回首页</font></A><BR>
</strong>
</TD>
<TD class="tt2" background="bg.gif" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷体_GB2312">第十五章 数据访问部件的应用及编程(三)</FONT></B></center>
<hr color="#EE9B73" size="1" width="94%">
<p>15.6.1 字段部件 </p>
<p>字段部件在应用程序中始终是不可见的部件。在程序运行过程中是如此,在程序设计阶段也是如此,但是它在应用中起着非常重要的作用,可以说它是所有数据浏览部件从数据库表中显示、编辑数据的基础。这是因为字段部件直接对应着数据库表中的字段,浏览和修改表中的数据必须要通过字段部件,同时字段部件所拥有的属性可以用来说明数据库表中对应的字段的数据类型、当前的字段值、显示格式、编辑格式等,字段部件的事件如OnValidate可以用来设定输入字段值时进行有效性检验。</p>
<p>数据库表的每一列在应用程序中都有其对应的一个字段部件,在缺省情况下,当TTable或TQuery的Active属性被置为False或调用close方法时,与表中各列对应的字段部件也随即消失,要想为应用程序创建永久性的字段部件,我们必须要在程序设计阶段使用字段编辑器(Fields
Editor)来创建。使用字段编辑器创建永久性字段的好处是:我们在程序代码中利用永久性字段部件可以更加有效、方便、可靠地访问数据库表中记录的各字段值,
在任何时候我们都可以以同样的字段顺序、固定的字段显示表中的记录,即使数据库表的结构已发生了变化。当然如果在数据库表中与字段部件对应的字段已经不存在时,应用程序就不能正常地执行下去了,Delphi会弹出一个错误信息框,告诉用户表中的字段已经不存在了。 </p>
<p>15.6.1.1 字段部件的属性及应用 </p>
<p>字段部件具有很多的属性,通过设置字段部件有关的属性,可以控制字段对象在数据浏览部件中的显示方式、字段值能否被修改等。特别是对于用字段编辑器创建的永久性的字段部件,我们在程序设计阶段便可以在Object
Inspector中方便地选取字段部件, 进行有关属性的设置。</p>
<p>字段部件的主要属性如表15.6所示,该表中列出的属性只是字段部件的部分属性,它主要用来控制字段对象的显示方式。 </p>
<p>表15.6 字段部件的主要属性</p>
<p>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</p>
<p>属性名 功 能</p>
<p>───────────────────────────────</p>
<p>Alignment 说明字段值在数据浏览部件中显示时的对齐方式:</p>
<p>左对齐、右对齐、居中三种方式。</p>
<p>───────────────────────────────</p>
<p>Calculated 说明字段是否是计算字段,属性值为True时,该</p>
<p>字段是计算字段、字段值可以根据表中其它字段</p>
<p>的值计算得出。</p>
<p>───────────────────────────────</p>
<p>Currency 等于true时,以货币格式显示数值,等于False时,</p>
<p>不以货币格式显示数值型数据。</p>
<p>───────────────────────────────</p>
<p>DisplayFormat 用于说明字段值在数据浏览部件中的显示格式</p>
<p>───────────────────────────────</p>
<p>DisplayLabel 字段在网格(TDBGrid部件)中显示时,为字段指定</p>
<p>显示标题。</p>
<p>───────────────────────────────</p>
<p>DisplayNidth 字段在网格(TDBGrid部件)中显示时,为字段指定</p>
<p>显示宽度,单位是字符数。</p>
<p>───────────────────────────────</p>
<p>EditFormat 说明字段在数据浏览部件中的编辑输入格式</p>
<p>───────────────────────────────</p>
<p>EditMask 在进行字段值的编辑输入时,限定输入字段值的</p>
<p>过滤条件(即字段值的范围)。</p>
<p>───────────────────────────────
</p>
<p>FieldName 该字段部件对应实际数据库表中的字段的名字</p>
<p>───────────────────────────────</p>
<p>Index 该字段部件在数据集所有字段部件中的顺序号</p>
<p>───────────────────────────────</p>
<p>MaxValue 说明可以为该字段输入最大的数值</p>
<p>───────────────────────────────</p>
<p>MinValue 说明可以为该字段输入最小的数值</p>
<p>───────────────────────────────</p>
<p>Name 字段部件的名字</p>
<p>───────────────────────────────</p>
<p>ReadOnly 等于true时,只能读取该字段的字段值,不能修改;</p>
<p>等于False时,可以对该字段的字段值进行读写。</p>
<p>───────────────────────────────</p>
<p>Size 说明字段的大小,单位是字符数</p>
<p>───────────────────────────────</p>
<p>Visible 为True时,该字段可以在TBDBGrid部件中显示;</p>
<p>为False时,该字段不能在TDBGrid部件中显示</p>
<p>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</p>
<p> </p>
<p>表15.6中的属性并不是所有类型的字段部件都拥有的,如一个TStringField类型的字段部件是没有Currency、MaxValue、MinValue和DisplayFormat属性的,一个TFloatField类型的字段部件是没有Size属性的。</p>
<p>对于布尔型属性,在设计过程中的Object Inspector中双击该属性,该属性的值将会在True和False之间来回切换,其他属性需要用户输入属性值或从下拉式列表框中选取属性值。所有的属性都可以通过程序代码进行设置。大多数属性可以独立地设置,只有DisplayFormat,EditFormat和EditMask是相互联系的。在设置它们的属性值时一定要确保相互协调。</p>
<p>利用EditMask属性为字段设定编辑模式:</p>
<p>为字段部件设置一定的EditMask属性值,当编辑输入该字段的字段值时,用户只能根据EditMask设定的编辑模式进行编辑或输入字段值。在为EditMask属性设置属性值时可以用手动方式也可以用输入模式编辑器来完成,当为某字段部件设置EditMask属性时,双鼠标双击EditMask属性便可以打开输入模式编辑器(Input
Mask Editor) 。例如在为Customer.DB表的Phone字段设定编辑模式时,首先在Object
Inspector中选取与Phone字段对应的Table1Phone字段对象,然后双击EditMask属性,打开输入模式编辑器。 </p>
<p> 字段输入模式编辑器 </p>
<p>在字段输入模式编辑中可以选择一种输入模式,而且在TestInput编辑框中输入字段值进行检验。</p>
<p>因为TStringField类型的字段部件没有DisplayFormat属性,但是可以把EditMask属性当DisplayFormat属性使用。</p>
<p>设定字段的显示和编辑格式:</p>
<p>Delphi本身为某些类型的字段对象提供了设定其显示和编辑格式的例程,并且为字段部件的DisplayFormat和EditFormat属性指定了缺省值,例如对于与浮点型数值字段对应的TFloatField类型的字段部件,而且该字段部件的Currency属性设置为True
时,字段值1234.56的显示格式为$1234.56,编辑格式是1234.56。表15.7是Delphi提供了设置字段显示和编辑格式的例程。 </p>
<p>表15.7 字段格式例程</p>
<p>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</p>
<p>例 程 名 运用的字段对象</p>
<p>─────────────────────────────</p>
<p>FormatFloat TFloatField,TCurrencyField</p>
<p>FormatDateTime TDateField,TTimeField,TDateTimeField</p>
<p>FormatInteger TIntegerField,TSmallIntField,TWordField</p>
<p>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</p>
<p> </p>
<p>上述这些用于设定日期时间类型、数值型以及货币型字段的显示和编辑格式的例程,都是按国际上通行格式来设定相应类型字段的格式的,用户可以自己设置字段部件的DisplayFormat和EditFormat属性,来设定适合自己使用的格式,还可以为有关字段对象的OnGetText和OnSetText事件编写代码来设定字段的显示和编辑格式。</p>
<p> </p>
<p>15.6.1.2 字段部件的事件及应用</p>
<p> </p>
<p>字段部件常需处理的事件如表15.8所示</p>
<p> </p>
<p>表15.8 字段部件的事件</p>
<p>━━━━━━━━━━━━━━━━━━━━━━━━━━━━</p>
<p>事件名 用 途</p>
<p>────────────────────────────</p>
<p>OnChange 当字段部件的字段值发生改变时,触发该事件</p>
<p>OnGetText 当字段部件获得字段值时,触发该事件</p>
<p>OnSetText 当字段部件被设置字段值时,触发该事件</p>
<p>OnValidata 当字值被修改或插入新的字段值时,对字段值</p>
<p>进行有效性检验时,触发该事件</p>
<p>━━━━━━━━━━━━━━━━━━━━━━━━━━━━</p>
<p> </p>
<p>用户想自己设定字段的显示和编辑格式时,可以编写OnGetText事件和OnSetText事件的处理过程,以达到设定字段的显示和编辑格式。</p>
<p> </p>
<p>15.6.1.3 字段部件的类型转换函数及使用</p>
<p> </p>
<p>字段部件具有一些内部函数用于转换字段值的类型,对于不同的字段类型,这些转换函数的作用是不一样的,表15.9概括了不同类型的字段及转换函数的作用。</p>
<p> </p>
<p>表15.9 字段部件的转换函数</p>
<p>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</p>
<p>字段类型 AsString AsInteger AsFloat AsDatetime AsBoolean</p>
<p>────────────────────────────────────</p>
<p>TStringField 转换成 转换成整数 若能转换 日期 转换成布型</p>
<p>Stringg型 (若能转换) 则转换成 (若能转换)</p>
<p>────────────────────────────────────</p>
<p>TIntegerField </p>
<p>TSmallField 字符型 整数型 浮点型 不允许 不允许转换</p>
<p>TWordField </p>
<p>────────────────────────────────────</p>
<p>TFloatField </p>
<p>TCurrencyField 字符串型 舍入成整数 浮点型 不允许 不允许</p>
<p>TBCDField </p>
<p>────────────────────────────────────
</p>
<p>TDateField </p>
<p>TDateTimeField 字符串 不允许 浮点数 日期型 不允许</p>
<p>TTimeField </p>
<p>────────────────────────────────────
</p>
<p>TBooleanField 转换成Time 不允许 不允许 不允许 布尔型</p>
<p>或False </p>
<p>────────────────────────────────────
</p>
<p>TBytesField </p>
<p>TVarBytesField 字符串 不允许 不允许 不允许 不允许</p>
<p>TBlobField </p>
<p>────────────────────────────────────</p>

⌨️ 快捷键说明

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