dleephi Messagedlg


http://www.cnblogs.com/jxsoft/archive/2011/03/09/1978150.html
http://www.k51.com.cn ifMessageDlg('Welcome to my Delphi application. Exit now?', mtConfirmation, [mbYes, mbNo], 0) = mrYes thenbeginClose; end;Messagedlg使い方
ダイアログの種類:mtwarning――感嘆符を含む警告ダイアログmterror――赤い叉記号を含むエラーダイアログmtingformation――青色i記号を含む情報ダイアログmtconfirmation――緑の疑問符を含む確認ダイアログmtcustom――図の付いていない一般ダイアログ.ダイアログのタイトルは、プログラムの名前ボタン群にあるボタンです.mbYesまたは6 mbNo――mrNoまたは7 mbOk――mrOkまたは1 mbCall――mrCallまたは2 mbHelp――helpボタンmAbort――mrAbortまたは3 mbRetry――Almrtryまたは4 mbnol――

   
   
   
   
procedure TForm1.Button1Click(Sender: TObject);
var
S:
string ;
begin
if MessageDlg( ' ' ,mtInformation,[mbok,mbyes], 0 ) = mryes then
     messagebeep(MB_ICONEXCLAMATION);
end ;

TMsgDlgType
= (mtWarning, mtError, mtInformation, mtConfirmation, mtCustom);

TMsgDlgBtn
= (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore,
   mbAll, mbNoToAll, mbYesToAll, mbHelp);

const
mrNone    
= 0 ;
mrOk      
= idOk;
mrCancel  
= idCancel;
mrAbort    
= idAbort;
mrRetry    
= idRetry;
mrIgnore  
= idIgnore;
mrYes      
= idYes;
mrNo      
= idNo;
mrAll      
= mrNo + 1 ;
mrNoToAll
= mrAll + 1 ;
mrYesToAll
= mrNoToAll + 1 ;

Messagedlg()情報の漢化Delphiの常数はすべてconsts.pasの中に置いて、それを修正して漢化の目的を達成することができます.例えば:Messagedlg()表示のウィンドウタイトルとその中のボタンのタイトルはすべて英語で、使うことに影響しませんが、しかし1つの中国語のソフトウェアの中でいつも多少つり合いがないことに見えます.そのためにconsts.pasの中で以下の内容を探します.

   
   
   
   
SMsgDlgWarning = ' Warning ' ;
SMsgDlgError
= ' Error ' ;
SMsgDlgInformation
= ' Information ' ;
SMsgDlgConfirm
= ' Confirm ' ;
SMsgDlgYes
= ' &Yes ' ;
SMsgDlgNo
= ' &No ' ;
SMsgDlgOK
= ' OK ' ;
SMsgDlgCancel
= ' Cancel ' ;
SMsgDlgHelp
= ' &Help ' ;
SMsgDlgHelpNone
= ' No help available ' ;
SMsgDlgHelpHelp
= ' Help ' ;
SMsgDlgAbort
= ' &Abort ' ;
SMsgDlgRetry
= ' &Retry ' ;
SMsgDlgIgnore
= ' &Ignore ' ;
SMsgDlgAll
= ' &All ' ;
SMsgDlgNoToAll
= ' N&o to All ' ;
SMsgDlgYesToAll
= ' Yes to &All ' ;

せいにする

   
   
   
   
SMsgDlgWarning = ' ' ;
SMsgDlgError
= ' ' ;
SMsgDlgInformation
= ' ' ;
SMsgDlgConfirm
= ' ' ;
SMsgDlgYes
= ' (&Y) ' ;
SMsgDlgNo
= ' (&N) ' ;
SMsgDlgOK
= ' ' ;
SMsgDlgCancel
= ' ' ;
SMsgDlgHelp
= ' (&H) ' ;
SMsgDlgHelpNone
= ' ' ;
SMsgDlgHelpHelp
= ' ' ;
SMsgDlgAbort
= ' (&A) ' ;
SMsgDlgRetry
= ' (&R) ' ;
SMsgDlgIgnore
= ' (&I) ' ;
SMsgDlgAll
= ' (&A) ' ;
SMsgDlgNoToAll
= ' (&O) ' ;
SMsgDlgYesToAll
= ' (&A) ' ;

そしてCons.pasを再コンパイルして、delphiのlibとslibサブディレクトリにConss.ducを拷問して、苦労しました.