如何阻止點選DBGrid之不同記錄而發生TTable之自動儲存? |
答題得分者是:P.D.
|
vbkiller
一般會員 發表:65 回覆:28 積分:18 註冊:2007-03-13 發送簡訊給我 |
我的表格有許多dbedit及一個DBGrid和Datasource元件,至於所有TTable則放在Tdatamodule,許多dbedit元件之目的是要顯示及編輯單一筆記錄之各欄位值,DBGrid元件之目的是可以一次顯示多筆記錄,但在新增或編輯記錄之各欄位值時,若用滑鼠點選DBGrid之不同記錄,就會造成TTable之自動儲存,我不希望這樣,我希望藉由明確按儲存鈕時才發生儲存動作,要達成我的期望,我有兩種不同方法
1.藉由TTable之beforepost事件來防止自動儲存,如 if table1.stata in [dsedit,dsinsert] and postclick=false then abort; (postclick是一boolean變數,當按儲存鈕時設定為true) 2.藉由datasource之statechange事件來防止自動儲存,if table1.stata in [dsedit,dsinsert] then DBGrid.enable:=false else DBGrid.enable:=true ; 請問還有沒有其他方法可以達成我的期望 ? 請問上述兩個方法那個較好呢 ? |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
kadee
高階會員 發表:11 回覆:141 積分:165 註冊:2002-03-20 發送簡訊給我 |
試試看 把 TTable.cacheupdate 設成 true,
再按[存檔]時,再 applyupdate. 必利得免費進銷存及總帳會計軟體 www.bigredinf.net/ ===================引 用 vbkiller 文 章=================== 我的表格有許多dbedit及一個DBGrid和Datasource元件,至於所有TTable則放在Tdatamodule,許多dbedit元件之目的是要顯示及編輯單一筆記錄之各欄位值,DBGrid元件之目的是可以一次顯示多筆記錄,但在新增或編輯記錄之各欄位值時,若用滑鼠點選DBGrid之不同記錄,就會造成TTable之自動儲存,我不希望這樣,我希望藉由明確按儲存鈕時才發生儲存動作,要達成我的期望,我有兩種不同方法 1.藉由TTable之beforepost事件來防止自動儲存,如 if table1.stata in [dsedit,dsinsert] and postclick=false then abort; (postclick是一boolean變數,當按儲存鈕時設定為true) 2.藉由datasource之statechange事件來防止自動儲存,if table1.stata in [dsedit,dsinsert] then DBGrid.enable:=false else DBGrid.enable:=true ; 請問還有沒有其他方法可以達成我的期望 ? 請問上述兩個方法那個較好呢 ?
------
Kadee/BigRed Ent. www.tw165.com |
tbn
一般會員 發表:6 回覆:9 積分:3 註冊:2002-05-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |