手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

Delphi设计可中/英文切换的界面技巧_开发者网络_Delphi

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  在一些软件中,我们经常会看到界面语言切换功能,不过程序需要的这些各国语言信息都封装在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,运行一下,看看效果,切换的速度也非常快,有兴趣的朋友可以试试。

  (本程序在DELPHI6 WIN2000环境下调试通过)

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!