程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 第十五章-數據訪問部件的應用及編程(三)(2)

第十五章-數據訪問部件的應用及編程(三)(2)

編輯:Delphi

表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;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved