AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > Delphi

第十五章 数据访问部件的应用及编程(三)

51自学网 http://www.51zixue.net

 

 

表15.6中的属性并不是所有类型的字段部件都拥有的,如一个TStringField类型的字段部件是没有Currency、MaxValue、MinValue和DisplayFormat属性的,一个TFloatField类型的字段部件是没有Size属性的。

对于布尔型属性,在设计过程中的Object Inspector中双击该属性,该属性的值将会在True和False之间来回切换,其他属性需要用户输入属性值或从下拉式列表框中选取属性值。所有的属性都可以通过程序代码进行设置。大多数属性可以独立地设置,只有DisplayFormat,EditFormat和EditMask是相互联系的。在设置它们的属性值时一定要确保相互协调。

利用EditMask属性为字段设定编辑模式:

为字段部件设置一定的EditMask属性值,当编辑输入该字段的字段值时,用户只能根据EditMask设定的编辑模式进行编辑或输入字段值。在为EditMask属性设置属性值时可以用手动方式也可以用输入模式编辑器来完成,当为某字段部件设置EditMask属性时,双鼠标双击EditMask属性便可以打开输入模式编辑器(Input Mask Editor) 。例如在为Customer.DB表的Phone字段设定编辑模式时,首先在Object Inspector中选取与Phone字段对应的Table1Phone字段对象,然后双击EditMask属性,打开输入模式编辑器。 

字段输入模式编辑器 

在字段输入模式编辑中可以选择一种输入模式,而且在TestInput编辑框中输入字段值进行检验。

因为TStringField类型的字段部件没有DisplayFormat属性,但是可以把EditMask属性当DisplayFormat属性使用。

设定字段的显示和编辑格式:

Delphi本身为某些类型的字段对象提供了设定其显示和编辑格式的例程,并且为字段部件的DisplayFormat和EditFormat属性指定了缺省值,例如对于与浮点型数值字段对应的TFloatField类型的字段部件,而且该字段部件的Currency属性设置为True 时,字段值1234.56的显示格式为$1234.56,编辑格式是1234.56。表15.7是Delphi提供了设置字段显示和编辑格式的例程。 

表15.7 字段格式例程

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

例 程 名 运用的字段对象

─────────────────────────────

FormatFloat TFloatField,TCurrencyField

FormatDateTime TDateField,TTimeField,TDateTimeField

FormatInteger TIntegerField,TSmallIntField,TWordField

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

上述这些用于设定日期时间类型、数值型以及货币型字段的显示和编辑格式的例程,都是按国际上通行格式来设定相应类型字段的格式的,用户可以自己设置字段部件的DisplayFormat和EditFormat属性,来设定适合自己使用的格式,还可以为有关字段对象的OnGetText和OnSetText事件编写代码来设定字段的显示和编辑格式。

 

15.6.1.2 字段部件的事件及应用

 

字段部件常需处理的事件如表15.8所示

 

表15.8 字段部件的事件

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

事件名 用 途

────────────────────────────

OnChange 当字段部件的字段值发生改变时,触发该事件

OnGetText 当字段部件获得字段值时,触发该事件

OnSetText 当字段部件被设置字段值时,触发该事件

OnValidata 当字值被修改或插入新的字段值时,对字段值

进行有效性检验时,触发该事件

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

用户想自己设定字段的显示和编辑格式时,可以编写OnGetText事件和OnSetText事件的处理过程,以达到设定字段的显示和编辑格式。

 

15.6.1.3 字段部件的类型转换函数及使用

 

字段部件具有一些内部函数用于转换字段值的类型,对于不同的字段类型,这些转换函数的作用是不一样的,表15.9概括了不同类型的字段及转换函数的作用。

 

表15.9 字段部件的转换函数

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

字段类型 AsString AsInteger AsFloat AsDatetime AsBoolean

────────────────────────────────────

TStringField 转换成 转换成整数 若能转换 日期 转换成布型

Stringg型 (若能转换) 则转换成 (若能转换)

────────────────────────────────────

TIntegerField

TSmallField 字符型 整数型 浮点型 不允许 不允许转换

TWordField

────────────────────────────────────

TFloatField

TCurrencyField 字符串型 舍入成整数 浮点型 不允许 不允许

TBCDField

────────────────────────────────────

TDateField

TDateTimeField 字符串 不允许 浮点数 日期型 不允许

TTimeField

────────────────────────────────────

TBooleanField 转换成Time 不允许 不允许 不允许 布尔型

或False

────────────────────────────────────

TBytesField

TVarBytesField 字符串 不允许 不允许 不允许 不允许

TBlobField

────────────────────────────────────

TMemoField 二进制 不允许 不允许 不允许 不允许

TGraphilField 字段

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

上述这些转换函数可以在任何与字段部件有关的表达式中使用,只要是表15.9中允许进行转换的数据类型,这些转换函数其实是当做字段部件的属性来使用的,它们可以出现在赋值语句的两边。例如下面的程序代码是将字段部件TableMyField的字段值转变成字符串类型的数据,并将它赋给编辑框Edit1的Text属性:

 

Edit1.Text := TableMyField.AsString;

 

而下面的代码是进行相反的操作,它将编辑框部件Edit1的Text属性值以字符串的形式赋给字段TableMyField,TableMyField通过AsString接受字符串并将其转变成自身的数据类型。

 

TableMyField.AsString :=Edit1.Text;

 
 

上一篇:第十六章 数据浏览部件的应用及编程(一)  下一篇:第十五章 数据访问部件的应用及编程(二)