程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi設計可中/英文切換的界面技巧

Delphi設計可中/英文切換的界面技巧

編輯: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,運行一下,看看效果,切換的速度也非常快,有興趣的朋友可以試試。

(本程序在DELPHI6+WIN2000環境下調試通過)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved