修改字段對象的屬性
字段對象的訪問
字段對象在應用程序中有動態生成的也有通過字段編輯器Fields Editor 創建的永久性的它們雖然在設計和運行階段都是不可見但是它們跟其他的對象一樣都擁有自己的屬性方法和事件因此我們在應用程序中是可以對字段對象進行控制和訪問的
因為動態字段對象是沒有自己的名字的永久性的字段對象有自己的名字所以對這兩種字段對象的訪問方法是不一樣的
動態字段對象的訪問
動態字段對象存在於數據集部件TTable和TQuery部件中它們是隨著磁盤上的數據庫文件的打開而動態生成的並且每一個字段對象對應於數據庫表中的一個字段(即記錄的一列)TTable或TQrery部件中所有的字段對象存在屬性Fields列表中Fields列表中的字段對象就像數組元素一樣擁有自己的索引號我們可以用這個索引號來訪問字段對象索引號在程序運行時賦值從開始表中最左邊的一列(第一個字段)的索引號為緊接著右邊一個為以此類推訪問這些屬性的方法和處理其他對象一樣
TableFields[]DisplayLabel:=標識符
上述代碼讓我們訪問與Table相連的數據庫表中的第一個字段並為該字段指定一個標題這是通過設置它的DisplayLabel屬性值為一個特定的標識符來實現的
通過索引號來訪問Fields屬性中的字段在使用For循環對列號進行迭代時會非常有用但是在大多數簡單應用程序中通過列名(字段名)來訪問字段會更加明白而且易讀在TTable部件中提供了一個名為FieldByName的方法以便讓我們通過列名訪問字段對象
TableFieldByName(CustNo)DisplayLabel:=標識符
通過這種途徑同樣可以訪問CUSTOMERDB表中的CustNo字段並為該字段指定一個標題信息
現在我們可以建立一個允許用戶通過字段名和索引號來訪問CustomerDB 表中的字段對象的簡單窗體
字段對象的訪問
在該應用窗體的運行過程中我們通過程序來訪問其中的字段對象並設置有關的屬性這一控制過程我們放在窗體的OnCreate事件處理過程中
例 在窗體的Oncreate事件處理過程中訪問字段對象
procedure TFormFormCreate(Sender:TObject)
Begin
with Table Do
begin
{通過索引號訪問字段對象}
Field[]DisplayLabel:=客戶編號;
{通過字段名訪問字段對象}
FieldByName(Company)DisplayLabel:=公司名稱;
FieldByName(Phone)DisplayLabel:=電話號碼;
FieldByName(LastInvoiceDate)DisplayLabel:=購買日期;
end;
end;
在程序運行過程中訪問字段對象
永久性字段對象的訪問
通過字段編輯器Fields Editor 建立的永久性字段對象的訪問相對於動態字段對象的訪問要簡單得多我們在程序中可以直接通過字段對象的名稱(即Name屬性)進行訪問
例如
TableCustNoDisplayLabel:=客戶編號;
TableCustNoDisplayWidth:=;
字段對象的讀取和賦值
通過字段對象的Value屬性我們可以讀取字段對象的值例如在如圖所示的窗體中單擊Read按鈕便可以將CustomerDB表中當前記錄的COMPANY字段的值讀取到編輯框Edit中
讀取字段對象的字段值
窗體中各部件的屬性如表所示
表 各部件的屬性
━━━━━━━━━━━━━━━━━━━━━━━━
部件的屬性 屬 性 值
────────────────────────
ButtonCaption &Read
ButtonName Button
LabelCaption 字段值
LabelName Label
EditText
EditName Edit
━━━━━━━━━━━━━━━━━━━━━━━━
其它部件的的屬性跟前面的例子一樣
為Read按鈕編輯的OnClick事件處理過程如下
procedure FormTButtonClick(Sender:TObject)
begin
EditText:=TableCompanyValue;
end;
在這裡要注意的是從字段對象中讀取字段值時必須要將它賦給與之數據類型相匹配的變量否則會出錯在上面的程序代碼中TableCompany的類型是TStringField 即是字符串類型的字段而編輯框Edit的屬性Text的類型也是字符串型的因而它們是匹配的如果類型不匹配則要經過一定的轉換才能夠相互賦值如
EditText:=TableCustNoValue
這條代碼在運行過程中將會出錯因為TablelcustNo是TFloatField 類型即是數值型數據要在編輯框Edit中顯示數值型數據要經過下列轉換
Edittext:=TableCustNoAsString;
AsString是字段對象的屬性通過字段對象的AsString屬性可以讀取字段值並且將它轉換成字符串類型字段對象的字段值可以轉換成以下幾種類型的數據
AsString: 將字段值轉換成字符串數據
AsBoolean: 將字段值轉換成布爾型數據
AsDateTime: 將字段值轉換成日期時間數據
AsFloat: 將字段值轉換成數值型數據
AsInteger: 將字段值轉換成整數型數據
下面的程序代碼是從字段對象中讀取字段值並將它顯示在編輯框Edit中或者將字段值賦給相匹配的變量
[] [] [] []
From:http://tw.wingwit.com/Article/program/Delphi/201311/25170.html