如何判斷ADOTable或者ADOQuery中資料是否儲存 |
尚未結案
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
如題﹐請各位前輩指點﹒ 小弟以前的作法都是先利用Modified屬性判斷資料是否有變動﹐如果有變動的話﹐就將關閉視窗按鍵的Enable屬性設為False﹐直到資料庫有Post之后再其按鍵的Enable屬性改為True﹐如果資料庫沒有變動的話﹐將關閉視窗按鍵的Enable設為True來控制﹐如果使用這樣的方法﹐該視窗的BORDERICONS屬性中的BiSystemMenu就要設為False﹐對一些習慣使用這里來關閉視窗的使用來講﹐就會覺得不習慣﹐當然也是可以利用同上的方法來控制BiSystemMenu的作用時機﹐漸漸發現這并不是一個好方法﹐請教各位前輩有無好的方法可以訂正﹒謝謝﹗ 努力,相信會獲得美麗!
忻晟
------
忻晟 |
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: 如題﹐請各位前輩指點﹒ 小弟以前的作法都是先利用Modified屬性判斷資料是否有變動﹐如果有變動的話﹐就將關閉視窗按鍵的Enable屬性設為False﹐直到資料庫有Post之后再其按鍵的Enable屬性改為True﹐如果資料庫沒有變動的話﹐將關閉視窗按鍵的Enable設為True來控制﹐如果使用這樣的方法﹐該視窗的BORDERICONS屬性中的BiSystemMenu就要設為False﹐對一些習慣使用這里來關閉視窗的使用來講﹐就會覺得不習慣﹐當然也是可以利用同上的方法來控制BiSystemMenu的作用時機﹐漸漸發現這并不是一個好方法﹐請教各位前輩有無好的方法可以訂正﹒謝謝﹗ 努力,相信會獲得美麗! 忻晟小弟也是有防止當還未存檔的狀況下不要讓使用者離開該Form,我是這麼控制的: procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin //將您寫在關閉視窗按鍵的程式寫在這兒,只留下Close; //我用BDE是這麼寫的 if Query1.State in [dsInsert, dsEdit] then begin MessageDlg('您目前在編修資料,請按存檔或取消,才能離開!',mtWarning,[mbOk],0); abort; end; end;所以您就不必控制Button的Enabled也不必控制Form的BORDERICONS。 ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~ |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 如題﹐請各位前輩指點﹒ 小弟以前的作法都是先利用Modified屬性判斷資料是否有變動﹐如果有變動的話﹐就將關閉視窗按鍵的Enable屬性設為False﹐直到資料庫有Post之后再其按鍵的Enable屬性改為True﹐如果資料庫沒有變動的話﹐將關閉視窗按鍵的Enable設為True來控制﹐如果使用這樣的方法﹐該視窗的BORDERICONS屬性中的BiSystemMenu就要設為False﹐對一些習慣使用這里來關閉視窗的使用來講﹐就會覺得不習慣﹐當然也是可以利用同上的方法來控制BiSystemMenu的作用時機﹐漸漸發現這并不是一個好方法﹐請教各位前輩有無好的方法可以訂正﹒謝謝﹗ 努力,相信會獲得美麗! 忻晟你可以把 if TTable.Modified=True then .... 放在 Form1.onCloseQuery 事件上, 這樣就算 BiSystemMenu=True時, 使用 人點了×這個, 也可以偵測到! if Table1.Modified then begin CanClose:= Application.MessageBox('資料庫已異動, 是否放棄?','訊息',MB_ICONYESNO); end; CanClose 可以控制Form是否可以Close |
wnhoo
高階會員 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |