Wolfgang Chien's Homepage | Delphi學習筆記 - 問答篇 |
看到 Wolf 兄一封 reply 中指出:
Tabl1.state=dsInsert 語法應為 Table1.state in [dsInsert] 小弟不禁汗顏,因許久以來小弟一直使用 Tabl1.state=dsInsert, 但奇怪的是,動作依然正常,何故哉??
如下程式片段:
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField); begin If Table1.state <> dsInsert then begin Edit1.text:=Table1Test_Name.value; { Insert 模式時不更新 Edit 內容} Edit2.text:=Table1Pass_Be.value; end; end;
Hi! 大家好:
我的程式大部分也與 Andre Chin 的寫法相同, 不過兩種寫法都是可以的.
TTable.State 的定義是列舉型態, 直接比較值, 或者以集合偵測都是可行的方法.
![]() |
Table1.State = dsBrowse then ==> 直接比較兩者的值 |
![]() |
if Table1.State in [dsBrowse] then
==> 因為集合中只有一個元素, 與上一行的結果是相同的 |
![]() |
那如果是:
if Table1.State in [dsEdit, dsInsert] then ==> 則 State 只要是 dsEdit 或 dsIsert 就是真值, 可以用來偵 測 Table1 是否在修改狀態 |
首頁 | 學習筆記 | 主題公園 | 軟體下載 | 關於本站 | 討論信群 | 相約下次 |