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

請問若在TDBGrid中刪除資料

尚未結案
shing.net
中階會員


發表:207
回覆:124
積分:66
註冊:2002-03-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-08 16:03:10 IP:140.122.xxx.xxx 未訂閱
請問若在TDBGrid中刪除資料按Ctril Del 出現刪除訊息是否可以將其改為中文 謝謝
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-08 16:29:38 IP:61.59.xxx.xxx 未訂閱
從元件原始碼得知
nbRefresh: Refresh;
        nbDelete:
          if not FConfirmDelete or
            (MessageDlg(SDeleteRecordQuestion, mtConfirmation,
            mbOKCancel, 0) <> idCancel) then Delete;
      end;
delete 會呼叫訊息視窗,修改字串常數 SDeleteRecordQuestion 可達成你的需求^^ 此字串位於 Delphi 的 \Source\Vcl\DBConsts.pas 發表人 - ddy 於 2003/03/08 16:34:47
shing.net
中階會員


發表:207
回覆:124
積分:66
註冊:2002-03-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-08 16:52:14 IP:140.122.xxx.xxx 未訂閱
引言: 從元件原始碼得知
nbRefresh: Refresh;
        nbDelete:
          if not FConfirmDelete or
            (MessageDlg(SDeleteRecordQuestion, mtConfirmation,
            mbOKCancel, 0) <> idCancel) then Delete;
      end;
delete 會呼叫訊息視窗,修改字串常數 SDeleteRecordQuestion 可達成你的需求^^ 此字串位於 Delphi 的 \Source\Vcl\DBConsts.pas 發表人 - ddy 於 2003/03/08 16:34:47
請問是直接修改Source?會不會有問題 還是做攔截訊息?
shing.net
中階會員


發表:207
回覆:124
積分:66
註冊:2002-03-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-08 17:07:37 IP:140.122.xxx.xxx 未訂閱
引言: 從元件原始碼得知
nbRefresh: Refresh;
        nbDelete:
          if not FConfirmDelete or
            (MessageDlg(SDeleteRecordQuestion, mtConfirmation,
            mbOKCancel, 0) <> idCancel) then Delete;
      end;
delete 會呼叫訊息視窗,修改字串常數 SDeleteRecordQuestion 可達成你的需求^^ 此字串位於 Delphi 的 \Source\Vcl\DBConsts.pas 發表人 - ddy 於 2003/03/08 16:34:47
我已改此字串但還是英文是否還要重新編譯
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-08 23:02:46 IP:61.59.xxx.xxx 未訂閱
當然需要重新編譯 編譯後產生的dcu檔 放置於 Delphi 目錄下的 \lib 你可以先將原檔案備份        
channel
尊榮會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-11 09:39:48 IP:211.21.xxx.xxx 未訂閱
引言: 還是做攔截訊息?
您改了Source之後,若您到另外一台電腦修改程式或Delphi重新安裝,不就又要改一次,我覺得還是攔截訊息比較好,方法如下:
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Shift = [ssCtrl]) and (Key = 46) then
    if MessageDlg('確定要刪除此筆資料嗎?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    begin
      TDBGrid(Sender).DataSource.DataSet.Delete;
      Key := 0;
    end;
end;
~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-11 10:36:06 IP:61.219.xxx.xxx 未訂閱
如果你不想 override Delphi Source, 可將 DBConsts.pas copy 到 Project 之目錄下, Add into project, 再改 DBConsts.pas. /*
系統時間:2024-05-05 15:36:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!