科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Delphi设计可中/英文切换的界面技巧

Delphi设计可中/英文切换的界面技巧

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

向大家介绍一个小技巧,在DELPHI中不需要任何DLL文件和INI文件,就可以实现中英文切换功能。

作者:秦凯 来源:yesky 2007年11月1日

关键字: Delphi 中/英文切换 界面

  • 评论
  • 分享微博
  • 分享邮件
在一些软件中,我们经常会看到界面语言切换功能,不过程序需要的这些各国语言信息都封装在DLL中,有的也存储在INI文件中,下面我就向大家介绍一个小技巧,在DELPHI中不需要任何DLL文件和INI文件,就可以实现此功能。

  首先新建一工程,然后在窗体FORM1中加入一些控件,在这里我假设加入了如下控件:三个TBUTTON按钮,两个TCHECKBOX,一个TGROUPBOX和一个菜单。

  然后把他们的CAPTION属性改为中文信息,再将对应的英文信息放在这些控件的HINT属性中,信息如下:
控件名称 CAPTION属性值 HINT属性值
Button1 中文 Chinese
Button2 英文 English
Button3 忽略 Ignore
CheckBox1 一般 General
CheckBox2 高级 Advanced
GroupBox1 信息 Information
PopupMenu1    
N1 当前日期 Current Date
N2 帮助 Help
N3 关于 About
N4 退出 Exit

  最后将Button1的TAG属性改为1,Button2的TAG属性改为2,双击FORM1,BUTTON1和BUTTON2,编写代码如下:

procedure TForm1.FormCreate(Sender : Tobject);
 begin
  //初始化,显示中文界面
  Button1.Enabled := False;
  Button2.Enabled :=True
end;

procedure TForm1.ChangeState(Mode : Byte); //改变按钮状态
 begin
  if Mode = 1 then //如果是显示中文,则Button1失效,Button2有效
   begin
    Button1.Enabled := False;
    Button2.Enabled := True;
   End
  Else
   Begin
    Button1.Enabled := True;
    Button2.Enabled := False;
   End;
end;

procedure TForm1.Button1Click(Sender: TObject);
 var i:Integer;
  CS : String;
 Begin
  ChangeState(Tbutton(Sender).Tag);
  for i:=0 to ComponentCount-1 do
   begin
    //将窗体中的菜单项的中/英文进行切换
    if Components[i] is TMenuItem then
     begin
      CS := TMenuItem(Components[i]).Hint ;
      TMenuItem(Components[i]).Hint:= TMenuItem(Components[i]).Caption ;
      TMenuItem(Components[i]).Caption := CS ;
    end;
   //将窗体中的按钮的中/英文进行切换
   if Components[i] is TButton then
    begin
     CS := TButton(Components[i]).Hint ;
     TButton(Components[i]).Hint := TButton(Components[i]).Caption ;
     TButton(Components[i]).Caption := CS ;
   end;
   //将窗体中的复选框的中/英文进行切换
   if Components[i] is TCheckBox then
    begin
     CS:=TCheckBox(Components[i]).Hint ;
     TCheckBox(Components[i]).Hint:=TCheckBox(Components[i]).Caption ;
     TCheckBox(Components[i]).Caption := CS ;
   end;
   //将窗体中的组合框的中/英文进行切换
   if Components[i] is TGroupBox then
    begin
     CS:=TGroupBox(Components[i]).Hint ;
     TGroupBox(Components[i]).Hint:=TGroupBox(Components[i]).Caption ;
     TGroupBox(Components[i]).Caption := CS ;
   end;
  end;
end;

  最后再将Button2的ONCLICK事件指向Button1的ONCLICK事件,按F9,运行一下,看看效果,切换的速度也非常快,有兴趣的朋友可以试试。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    闂傚倷绶¢崣搴ㄥ窗閺囩偐鏋庨柕蹇嬪灪婵ジ鏌曡箛瀣偓鏍綖閿燂拷

    濠电姷顣介埀顒€鍟块埀顒€缍婇幃妯诲緞閹邦剛鐣洪梺闈浥堥弲婊勬叏濠婂牊鍋ㄦい鏍ㄧ〒閹藉啴鏌熼悜鈺傛珚鐎规洘宀稿畷鍫曞煛閸屾粍娈搁梻浣筋嚃閸ㄤ即宕㈤弽顐ュС闁挎稑瀚崰鍡樸亜閵堝懎濮┑鈽嗗亝濠㈡ê螞濡ゅ懏鍋傛繛鍡樻尭鐎氬鏌嶈閸撶喎顕i渚婄矗濞撴埃鍋撻柣娑欐崌閺屾稑鈹戦崨顕呮▊缂備焦顨呴惌鍌炵嵁鎼淬劌鐒垫い鎺戝鐎氬銇勯弽銊ф噥缂佽妫濋弻鐔碱敇瑜嶉悘鑼磼鏉堛劎绠為柡灞芥喘閺佹劙宕熼鐘虫緰闂佽崵濮抽梽宥夊垂閽樺)锝夊礋椤栨稑娈滈梺纭呮硾椤洟鍩€椤掆偓閿曪妇妲愰弮鍫濈闁绘劕寮Δ鍛厸闁割偒鍋勯悘锕傛煕鐎n偆澧紒鍌涘笧閹瑰嫰鎼圭憴鍕靛晥闂備礁鎼€氱兘宕归柆宥呯;鐎广儱顦伴崕宥夋煕閺囥劌澧ù鐘趁湁闁挎繂妫楅埢鏇㈡煃瑜滈崜姘跺蓟閵娧勵偨闁绘劕顕埢鏇㈡倵閿濆倹娅囨い蹇涗憾閺屾洟宕遍鐔奉伓

    重磅专题
    往期文章
    最新文章