现在要做一个多语言支持的程序,delphi自带的好像不是很好用--在日文系统下出现乱码!而且这个程序的设计过程中又不可以使用第三方控件,所以想用不同的图片显示。问题如下:
在delphi中怎样判断当前操作系统是语言是什么?
判断出是什么语言语言后怎样显示不同图片?
不知各位大侠还有什么其它更好的方法,在下愿闻其详。(分不够可以再加!)

解决方案 »

  1.   

    可以使用这个控件:
    http://www.tonixsoft.com/index.php?mmenu_id=4&smenu_id=0000根据不同语言加载不同图片可以用这样:
      try
        Image1.Picture.Bitmap.LoadFromResourceName(hInstance,Translate('image','image_eng'));
      except
        Image1.Picture.Bitmap.LoadFromResourceName(hInstance,'image_eng');
      end;translate是多国语言包提供的函数,通过它,到当前使用的语言配置文件下去找"image"的具体内容,如果没有找到就使用默认的"image_eng",找到的话,如"image_jpn",就到文件的资源中去尝试打开这个资源。
      

  2.   

    to  CloneCenter(复制中心) 
    谢谢to  tonylk(tony):
    谢谢
    这个控件我下载了,但是我们这不让用第三方控件:(
    有没有可以编写一个函数判断当前操作系统是是什么语言的方法?
      

  3.   

    //识别语言的版本
    function WhichLanguage:string;
    var
      ID:LangID;
      Language: array [0..100] of char;
    begin
      ID:=GetSystemDefaultLangID;
      VerLanguageName(ID,Language,100);
      Result:=String(Language);
    end;第二个问题,你自己去处理。
      

  4.   

    我使用ini文件自己写个函数装载语言就行了.
    判断语言使用 getacp ,
    切换语言时注意 Form 的 Font.name and Form.Charset ,要作更改的
      

  5.   

    这里可以参考 type SysUtils.TLanguages,再根据需要编写:procedure TForm1.Button4Click(Sender: TObject);
    var
    I: Integer;
    begin
      Memo1.Clear;
      for I := 0 to Languages.Count - 1 do
      Memo1.Lines.Add(Languages.Name[I]);
    end;
      

  6.   

    GetACP--获取ANSI系统代码页如何使用?
    可以把问题说得再细致一点吗?谢谢!
    http://expert.csdn.net/Expert/topic/2280/2280918.xml?temp=.6710016
    -----------------------------------------------------------------
    回复:
    使用GetACP得到CodePage之后可以得知操作系统使用的语言,具体请看MSDN :
    http://msdn.microsoft.com/library/default.asp?url=/workshop/Author/dhtml/reference/charsets/charset4.asp
      

  7.   

    GetACP--获取ANSI系统代码页如何使用?
    可以把问题说得再细致一点吗?谢谢!
    http://expert.csdn.net/Expert/topic/2280/2280918.xml?temp=.6710016
    ------------------------------------------------------------------
    回复:
    我给你的那个msdn的网址中那个页面有个很大的表。
    在该表中codepage不一样,但是FamilyCodepage一样的都是同一种语言。    我给你一小段代码你就明白了case GetACP of
       936,51936,52936,10008,50935:
          //是简体中文
         font.name='simsun';
        950,20000,20002,10002,50937:
          //是繁体中文
          font.name='mingliu';
    end;
      

  8.   

    to qinmaofan(采菊南山下 <抵制日货 从我做起>):
    非常感谢,明白了。
    其它的我在试试看。
      

  9.   

    采用MLangX组件,可以管理界面中的语言字串项目,在Cache中HASH方式查寻字串很快。
    下载 http://www.1bitsoft.com/downloads/mlxdemo1_1.zip
    可以与作者[email protected]联系 QQ 12821922
    正在征集测试用户,你可以得到一份正版的许可