全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1460
推到 Plurk!
推到 Facebook!

如何判斷ADOTable或者ADOQuery中資料是否儲存

尚未結案
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-22 18:20:26 IP:63.84.xxx.xxx 未訂閱
如題﹐請各位前輩指點﹒ 小弟以前的作法都是先利用Modified屬性判斷資料是否有變動﹐如果有變動的話﹐就將關閉視窗按鍵的Enable屬性設為False﹐直到資料庫有Post之后再其按鍵的Enable屬性改為True﹐如果資料庫沒有變動的話﹐將關閉視窗按鍵的Enable設為True來控制﹐如果使用這樣的方法﹐該視窗的BORDERICONS屬性中的BiSystemMenu就要設為False﹐對一些習慣使用這里來關閉視窗的使用來講﹐就會覺得不習慣﹐當然也是可以利用同上的方法來控制BiSystemMenu的作用時機﹐漸漸發現這并不是一個好方法﹐請教各位前輩有無好的方法可以訂正﹒謝謝﹗ 努力,相信會獲得美麗! 忻晟
------
忻晟
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-22 18:33:04 IP:211.21.xxx.xxx 未訂閱
引言: 如題﹐請各位前輩指點﹒ 小弟以前的作法都是先利用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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-23 22:28:35 IP:61.66.xxx.xxx 未訂閱
引言: 如題﹐請各位前輩指點﹒ 小弟以前的作法都是先利用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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-24 07:47:51 IP:61.155.xxx.xxx 未訂閱
//窗体关闭前 procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if Table1.Modified then begin showmessage('请保存资料!'); canclose:=false; end else canclose:=true; end;    风花雪月 e梦情缘
------
风花雪月 e梦情缘
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-05-24 09:19:24 IP:63.84.xxx.xxx 未訂閱
謝謝各位前輩的解答 P.D前輩的解答更貼切小弟的需要﹐故就是得分者﹒ Channel与Wnhoo前輩的熱心答題﹐同樣真心的感謝兩位﹒ 努力,相信會獲得美麗! 忻晟
------
忻晟
系統時間:2024-05-19 10:15:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!