MessageDlg的汉化(30分)

  • 主题发起人 主题发起人 鹰之子
  • 开始时间 开始时间

鹰之子

Unregistered / Unconfirmed
GUEST, unregistred user!
请教:
怎样把MessageDlg中的标题和按钮汉化?
现在调用出来显示的全是英文!

(请勿说用MessageBox代替MessageDlg)
 
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';
这是Source/Vcl/Consts.pas里的一部分 修改它以后编译试试看 不过建议修改前保存备份
 
同意PLWang,我也是这样做的。下面是我汉化的!
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)';
 
请问Consts.pas是在哪个包里的,我编译不了!
 
查Consts.pas
 
呵呵,用MessageBox吧。
Application.MessageBox('数据输入不完整!', '提示', MB_OK + MB_ICONERROR);
 
请问Consts.pas是在哪个包里的,我编译不了!
 
MessageBox可以搞定的。


你可以看一下,它的源代码的。看了你就知道怎样做了。

function MessageDlg(const Msg: string; DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer;
begin
Result := MessageDlgPosHelp(Msg, DlgType, Buttons, HelpCtx, -1, -1, '');
end;


function MessageDlgPosHelp(const Msg: string; DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer;
const HelpFileName: string): Integer;
begin
with CreateMessageDialog(Msg, DlgType, Buttons) do
try
HelpContext := HelpCtx;
HelpFile := HelpFileName;
if X >= 0 then Left := X;
if Y >= 0 then Top := Y;
if (Y < 0) and (X < 0) then Position := poScreenCenter;
Result := ShowModal;
finally
Free;
end;
end;
 
在“C:/Program Files/Borland/Delphi5/lib”下,要编译可以将它拷贝到另一个目录下,
汉化后,开一个新工程,加入此文件,然后编译,将编译后的dcu文件拷贝回去覆盖原dcu
文件,就OK了。
最好退出Delphi再进入,这时再调用MessageDlg后就看到汉化好了!
 
多人接受答案了。
 
后退
顶部