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

請問MessageBox的按鈕有辦法改變名稱嗎?

答題得分者是:懷舊的人
cliffpen
一般會員


發表:35
回覆:18
積分:15
註冊:2005-05-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-11 14:35:06 IP:220.130.xxx.xxx 未訂閱
當我們輸入 Application->MessageBox("test","test",MB_OK); 會出現一個小視窗,且上面有"確定"的按鈕 請問各位大大 1.有沒有辦法把"確定"改成自訂的內容? 2.看BCB的範例(MB_YESNOCANCEL)最多只有三個按鈕,有辦法改成四個嗎?
懷舊的人
高階會員


發表:28
回覆:152
積分:141
註冊:2003-01-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-11 15:16:52 IP:211.78.xxx.xxx 未訂閱
這是 DELPHI 的寫法  
procedure TForm1.Button1Click(Sender: TObject);
const
  mbFour = [mbYes,  mbNo, mbOK, mbCancel];
var
  F: TForm;
begin
  F := CreateMessageDialog('要重新製作嗎?',mtWarning,mbFour);
  with F do
  try
    TButton(FindComponent('Yes')).Caption := '是';
    TButton(FindComponent('No')).Caption := '不';
    TButton(FindComponent('OK')).Caption := '好的';
    TButton(FindComponent('Cancel')).Caption := '取消';
    ShowModal;
    case ModalResult of
      mrYes: ShowMessage('Press Yes !');
      mrNo: ShowMessage('Press No !');
      mrOK: ShowMessage('Press OK !');
      mrCancel: ShowMessage('Press Cancel !');
    end;
  finally
    Free;
  end;
end;
end; 
發表人 - 懷舊的人 於 2005/10/11 21:37:45
cliffpen
一般會員


發表:35
回覆:18
積分:15
註冊:2005-05-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-11 17:05:00 IP:220.130.xxx.xxx 未訂閱
以下是參考了懷舊的大大和別篇文章所寫的程式碼:  
     void __fastcall TForm1::Button1Click(TObject *Sender)
{
        Application->MessageBox("test","tset",MB_OK);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
        TButton* btn=NULL;
        btn=dynamic_cast(FindComponent("確定"));
        if(btn)
        {
                btn->Caption="" ;
        }
}
//---------------------------------------------------------------------------
發現此方法對Form1上面的Button有效,但對MessageBox上的Button無效!! 請問大大,是我有什麼地方疏忽了? 還是說本來就無法用在MessageBox上面 發表人 - cliffpen 於 2005/10/11 17:06:58
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-11 19:20:13 IP:221.169.xxx.xxx 未訂閱
FindComponent會找尋Form1上面的元件,是否有名字叫做"確定"的 (注意!FindComponent是找尋Name,而不是Caption) 但MessaggeBox並不屬於Form1,更不是他的元件 所以在Form1用FindComponent是無效的    懷舊的人大大的code轉成BCB為
   TMsgDlgButtons mbFour;
   mbFour << mbYes << mbNo << mbOK << mbCancel;
   TForm* p=CreateMessageDialog("要重新製作嗎?",mtWarning,mbFour);
   ((TButton*)p->FindComponent("Yes"))->Caption="確定";
   p->ShowModal();
   delete p;
cliffpen
一般會員


發表:35
回覆:18
積分:15
註冊:2005-05-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-10-11 19:54:35 IP:220.130.xxx.xxx 未訂閱
TO兩位大大: 實在是太酷啦~~~~
系統時間:2024-05-08 18:13:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!