delphi Messagebox对话框显示 “确定”“取消”

yuhaobbq 2010-09-09 02:07:59
我用的对话框 都是显示yes no cancel 怎样让它变成汉语 确定 取消 变成 ,网上介绍有通过dll什么的 但都没细说 。哪位大侠介绍下 以供后人参考 (方法越多越好 )
...全文
667 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuhaobbq 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 a5918886 的回复:]
你把trim(combobox1.Text) 改成+trim(combobox1.Items.Text) 这个试试!

该结了吧!
[/Quote]

你骗了我
yuhaobbq 2010-09-09
  • 打赏
  • 举报
回复
你骗我 还是 不对
yuhaobbq 2010-09-09
  • 打赏
  • 举报
回复
应该应该 我全给你了
a5918886 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 yuhaobbq 的回复:]
好像是 '你确定要删除'+trim(combobox1.Text)+'号记录?'的问题 我把改

成 '你确定要删除记录?' 就可以运行了 但我需要显示trim(combobox1.Text)内容 咋解决?
[/Quote]
你把trim(combobox1.Text) 改成+trim(combobox1.Items.Text) 这个试试!

该结了吧!
yuhaobbq 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 a5918886 的回复:]
[/Quote]

a5918886 兄 抱歉 可否再帮小弟解决下?
yuhaobbq 2010-09-09
  • 打赏
  • 举报
回复
好像是 '你确定要删除'+trim(combobox1.Text)+'号记录?'的问题 我把改

'你确定要删除记录?' 就可以运行了 但我需要显示trim(combobox1.Text)内容 咋解决?
yuhaobbq 2010-09-09
  • 打赏
  • 举报
回复
还有 就是 :

If Application.MessageBox('你確定要删除'+trim(combobox1.Text)+'号记录?',
'删除提示', MB_YESNO + MB_ICONQUESTION) = IDYES then

这句运行为什么报错[Error] Unit3.pas(306): Incompatible types: 'String' and 'PAnsiChar'

而在 If messagedlg('你确定要删除'+trim(combobox1.Text)+'号记录?',Mtconfirmation,[Mbyes,Mbno],0)=Mryes then 可以正常运行

这是什么原因? 简要解释下
a5918886 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 a5918886 的回复:]
引用 6 楼 yuhaobbq 的回复:
谢谢几位 还有一个问题准备结账

Application.MessageBox('','',49); 那个里面的'','',49(48,292)分别代表什么意思 能不能再添加个标题


第一个''号里边的是你窗口上要显示的文字,第二个 你写个‘提示’就行
[/Quote]

第二个‘’里边的内容 也就是你所谓的窗口标题
a5918886 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yuhaobbq 的回复:]
谢谢几位 还有一个问题准备结账

Application.MessageBox('','',49); 那个里面的'','',49(48,292)分别代表什么意思 能不能再添加个标题
[/Quote]

第一个''号里边的是你窗口上要显示的文字,第二个 你写个‘提示’就行
yuhaobbq 2010-09-09
  • 打赏
  • 举报
回复
谢谢几位 还有一个问题准备结账

Application.MessageBox('','',49); 那个里面的'','',49(48,292)分别代表什么意思 能不能再添加个标题

kye_jufei 2010-09-09
  • 打赏
  • 举报
回复
Application.MessageBox('你確定要退出shopfloor現場系統控制管理系統嗎?', 
'提示', MB_OKCANCEL + MB_ICONQUESTION);
a5918886 2010-09-09
  • 打赏
  • 举报
回复
最简单的就是 Application.MessageBox('','',49);就达到你想要的结果了
a5918886 2010-09-09
  • 打赏
  • 举报
回复
Delphi 的 InputBox 输入对话框,其窗口标题、提示信息和默认输入值都可以使用汉字字符串,惟独它上面的两个按钮“OK”“Cancle”不能让用户进行自行设置。看来这要从 Delphi 系统本身来下手了,要对 Delphi 的系统内部资源进行汉化。
事实正是这样。 Delphi 的许多系统字符串是在 consts.pas 文件中进行定义的。打开 \Program Files\Borland\Delphi5\Source\Vcl 路径下的 consts.pas 文件,找到
SMsgDlgOK = 'OK';
SMsgDlgCancel = 'Cancel';
两条语句,把其中的'OK' 和'Cancel'分别修改为汉字'确定'、'取消',保存。然后新建一个工程,加入 consts.pas 文件,编译工程,会生成一个 consts.dcu 文件,把该 consts.dcu 文件拷贝到 \Program Files\Borland\Delphi5\lib 路径下,OK,您下一次再使用 InputBox 语句,就会显示“确定”“取消”按钮了!
但是问题还没完。你会发现 InputBox 对话框上的“确定”“取消”字体非常难看。为了得到更好的效果,我们还要修改另一个 Delphi 的系统文件 Graphics.pas。该文件也在 \Program Files\Borland\Delphi5\Source\Vcl 路径下,我们需要在其中的 InitDefFontData 过程中添加几句代码,使 Delphi 对 GB2312_CHARSET 字符集进行处理。以下显示了 InitDefFontData 过程及我们添加的代码:
procedure InitDefFontData;
var
Charset: TFontCharset;
begin
DefFontData.Height := -MulDiv(8, ScreenLogPixels, 72);
if not SysLocale.FarEast then Exit;
Charset := GetDefFontCharset;
case Charset of
SHIFTJIS_CHARSET:
begin
DefFontData.Name := '字符';
DefFontData.Height := -MulDiv(9, ScreenLogPixels, 72);
DefFontData.CharSet := CharSet;
end;
//我们加入的语句
GB2312_CHARSET:
begin
DefFontData.Name :='';
DefFontData.Height :=-MulDiv(9,ScreenLogPixels,72);
DefFontData.Charset:=CharSet;
end;
//结束
end;
end;
经过以上两步修改,我们就对 InputBox 对话框进行了彻底的汉化。当然我们不能就此罢休,顺着这条思路,我们还可以汉化大量的 Delphi 的内部系统资源,甚至还可以设想做个汉化包什么的,那就要看各位的功夫了。
dinoalex 2010-09-09
  • 打赏
  • 举报
回复
Application.MessageBox('','',48);

Application.MessageBox('','',292);
dinoalex 2010-09-09
  • 打赏
  • 举报
回复
Application.MessageBox

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧