我用的对话框 都是显示yes no cancel 怎样让它变成汉语 确定 取消   变成     ,网上介绍有通过dll什么的 但都没细说 。哪位大侠介绍下 以供后人参考    (方法越多越好 )

解决方案 »

  1.   

    Application.MessageBox('','',48);Application.MessageBox('','',292);
      

  2.   

       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 的内部系统资源,甚至还可以设想做个汉化包什么的,那就要看各位的功夫了。
      

  3.   

    最简单的就是 Application.MessageBox('','',49);就达到你想要的结果了
      

  4.   

    Application.MessageBox('你確定要退出shopfloor現場系統控制管理系統嗎?', 
      '提示', MB_OKCANCEL + MB_ICONQUESTION);
      

  5.   

    谢谢几位 还有一个问题准备结账 Application.MessageBox('','',49); 那个里面的'','',49(48,292)分别代表什么意思   能不能再添加个标题
      

  6.   

    还有  就是 :  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    可以正常运行  这是什么原因?  简要解释下
      

  7.   

    好像是 '你确定要删除'+trim(combobox1.Text)+'号记录?'的问题  我把改成     '你确定要删除记录?'   就可以运行了 但我需要显示trim(combobox1.Text)内容 咋解决?
      

  8.   

    你把trim(combobox1.Text)  改成+trim(combobox1.Items.Text) 这个试试!该结了吧!