線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2205
推到 Plurk!
推到 Facebook!

請問判斷DBGrid編輯一問題, 謝謝!!

答題得分者是:chih
Ethan
版主


發表:101
回覆:170
積分:78
註冊:2006-07-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-07 11:48:52 IP:61.218.xxx.xxx 未訂閱
我有兩個DBGrid, 我要怎麼判斷使用者正在編輯哪個DBGrid?因為insert,delete,我只想做一個按鈕. 然後: OnClickInsertButton下 begin if ... then {這裡該怎麼寫? 謝謝!!} DB1.delete else DB2.delete; end;
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-07 12:01:32 IP:211.74.xxx.xxx 未訂閱
DBGrid1.DataSource.DataSet.State:=DsEdit;//判斷編輯
引言: 我有兩個DBGrid, 我要怎麼判斷使用者正在編輯哪個DBGrid?因為insert,delete,我只想做一個按鈕. 然後: OnClickInsertButton下 begin if ... then {這裡該怎麼寫? 謝謝!!} DB1.delete else DB2.delete; end;
發表人 - chih 於 2003/04/07 12:24:17
channel
尊榮會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-07 12:29:11 IP:211.21.xxx.xxx 未訂閱
引言: 我有兩個DBGrid, 我要怎麼判斷使用者正在編輯哪個DBGrid?因為insert,delete,我只想做一個按鈕. 然後: OnClickInsertButton下 begin if ... then {這裡該怎麼寫? 謝謝!!} DB1.delete else DB2.delete; end;
因為您要做Delete,所以無法用State去判斷。 用簡單一點的作法:
  • 宣告一個private變數 s: word;
  • procedure TForm1.DBGrid1Enter(Sender: TObject);
    begin
      s := 1;
    end;
    procedure TForm1.DBGrid2Enter(Sender: TObject);
    begin
      s := 2;
    end;
    
  • OnClickInsertButton下
    begin
      if s = 1 then
        DB1.delete
      else if s = 2 then
        DB2.delete;
    end;
    
~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-07 12:41:48 IP:218.16.xxx.xxx 未訂閱
引言: OnClickInsertButton下 begin if ... then {這裡該怎麼寫? 謝謝!!} DB1.delete else DB2.delete; end;
嘩,不得了,使用者按 InsertButton 你卻 Delete 丫? 由於執行 ActiveDB = 'DB1'>所有 DBGrid 的 OnExit 事件共用這個程序
If ActiveControl.Name = 'InsertButton' then // 在按 InsertButton
  TDBGrid(Sender).DataSources.DataSet.Insert;
else if ActiveControl.Name = 'DeleteButton' then  // 在按 DeleteButton
  TDBGrid(Sender).DataSources.DataSet.Delete;
else
  exit; //若是其他的Control 則離開而不作下面 SetFocus
end;
TDBGrid(Sender).SetFocus; // Focus 回到那個 DBGrid
呵呵,給Channel快一步提出首個方法了 發表人 -
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-07 15:09:54 IP:218.16.xxx.xxx 未訂閱
用 dsEdit 只能判斷一個 DBGrid 相關的 DataSet 是否在編輯狀態,卻不能判斷那個 DBGrid 是否正在編輯中。 若使用者編輯 DBGrid1 而沒有 post, 之後去編輯 DBGrid2, 按新增, 你的程式便會判別 DBGrid1 的 DataSet 在編輯狀態,然後在 DBGrid1 的 DataSet 新增記錄。 若使用者在 DBGrid1 Post 了後想新增一筆,按新增後你的程式會判別 不是 dsEdit 所以在 DBGrid2 新增資料 這就是你想要的嗎?
系統時間:2024-07-01 17:30:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!