關於MesssageDlgPos |
尚未結案
|
rowxuan
一般會員 發表:1 回覆:7 積分:1 註冊:2002-06-13 發送簡訊給我 |
|
jeff377
初階會員 發表:9 回覆:60 積分:33 註冊:2004-08-10 發送簡訊給我 |
|
rowxuan
一般會員 發表:1 回覆:7 積分:1 註冊:2002-06-13 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
引言: 因為我的訊息方塊要訂位..所以才會使用MessageDlgPos..麻煩了為何不使用MessageDlg?它是個Overload的函數,也可設定Caption及定位!看看它的原形宣告。 < class="code"> Delphi syntax: function MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Word; function MessageDlg(const Msg: WideString; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; DefaultBtn: TMsgDlgBtn = mbNone; Bitmap: TBitmap = nil): Integer; overload; function MessageDlg(const Caption: WideString; const Msg: WideString; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; DefaultBtn: TMsgDlgBtn = mbNone; Bitmap: TBitmap = nil): Integer; overload; function MessageDlg(const Caption: WideString; const Msg: WideString; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer; DefaultBtn: TMsgDlgBtn = mbNone; Bitmap: TBitmap = nil): Integer; overload; function MessageDlg(const Caption: WideString; const Msg: WideString; DlgType: TMsgDlgType; Button1, Button2, Button3: TMsgDlgBtn; HelpCtx: Longint; X, Y: Integer; DefaultBtn: TMsgDlgBtn = mbNone; Bitmap: TBitmap = nil): Integer; overload; ------------------- 學,然後知不足。 |
wameng
版主 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
有幾種方式:
1. 同意rowxuan所言,改用 Application.MessageBox or MessageBox 。
會使用系統語系。 2. 修改 Consts.pas 單元並在專案中引用它。
需放置於同一資料夾。 3. 修改資源。
在 http://www.swissdelphicenter.ch/torry/showcode.php?id=946
如下:
uses Consts; procedure HookResourceString(rs: PResStringRec; newStr: PChar); var oldprotect: DWORD; begin VirtualProtect(rs, SizeOf(rs^), PAGE_EXECUTE_READWRITE, @oldProtect); rs^.Identifier := Integer(newStr); VirtualProtect(rs, SizeOf(rs^), oldProtect, @oldProtect); end; procedure TForm1.FormCreate(Sender: TObject); begin MessageDlgPos('Test.....',mtWarning,[mbok,mbCancel],0,1,1); end; initialization HookResourceString(@SMsgDlgOK, '確認'); HookResourceString(@SMsgDlgCancel, '取消'); end.參考。 ~~~~~~~~~~~ 難得聰明,常常糊塗。 ~~~~~~~~~~~ |
jeff377
初階會員 發表:9 回覆:60 積分:33 註冊:2004-08-10 發送簡訊給我 |
你可以使用Stallion所說的,改用MessageDlg來達到你的需求,
不過他提及的MessageDlg函數需
uses QDialogs
而並非
uses Dialogs 不過若你使用是Delphi 5就沒有QDialogs,我目前使用Delphi 5及Delphi 7,
在Delphi 7的版本才會有QDialogs。 若你使用的是Delphi 5,可以改用Dialogspas中最底層的CreateMessageDialog函數,它回傳是個Dialog的TForm,彈性就比較大了。
function CreateMessageDialog(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons): TForm;註:MessageDlgPos函數的最底層,也是呼叫CreateMessageDialog,詳見Dialogs.pas |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |