zoukankan      html  css  js  c++  java
  • 关于三语 (简体、繁体、英语) 切换的尝试


    在空白窗体上添加 PopupMenu1, 并添加几个测试用的菜单项, 分别命名为: m1、m2、m3、mCn、mBig、mEn;
    激活 mCn 的 OnClick 事件和窗体的 OnCreate 事件.

    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Menus;
    
    type
      TForm1 = class(TForm)
        PopupMenu1: TPopupMenu;
        m1: TMenuItem;
        m2: TMenuItem;
        m3: TMenuItem;
        mCn: TMenuItem;  //Caption: 简体中文
        mBig: TMenuItem; //Caption: 繁体中文
        mEn: TMenuItem;  //Caption: English
        procedure FormCreate(Sender: TObject);
        procedure mCnClick(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
      LanguageList: TStrings;
    
    implementation
    
    {$R *.dfm}
    
    {转换简体到繁体}
    function Cn2Big(CnStr: string): string;
    var
      Len: Integer;
    begin
      Len := Length(CnStr);
      SetLength(Result, Len);
      LCMapString(GetUserDefaultLCID, LCMAP_TRADITIONAL_CHINESE, PChar(CnStr), Len, PChar(Result), Len);
    end;
    
    {建立列表: Name 将是英文菜单, Value 将是简体菜单, 繁体是从简体转换得来}
    procedure CreateLanguageList;
    begin
      with LanguageList do begin
        Clear;
        Add('Default=默认');
        Add('Fit Width=适宽');
        Add('Fit Height=适高');
      end;
    end;
    
    {语言变换}
    procedure ChangeLanguageList(LangId: Integer);
    var
      i: Integer;
    begin
      CreateLanguageList;
      with LanguageList do case LangId of
        0: Exit;
        1: for i := 0 to Count - 1 do Values[Names[i]] := Cn2Big(Values[Names[i]]);
        2: for i := 0 to Count - 1 do Values[Names[i]] := Names[i];
      end;
    end;
    
    {初始化菜单}
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      PopupMenu := PopupMenu1;
      PopupMenu1.AutoHotkeys := maManual;
      mBig.OnClick := mCn.OnClick;
      mEn.OnClick := mCn.OnClick;
      mCn.Tag := 0;
      mBig.Tag := 1;
      mEn.Tag := 2;
      mCn.Click;
    end;
    
    procedure TForm1.mCnClick(Sender: TObject);
    begin
      ChangeLanguageList(TMenuItem(Sender).Tag);
      m1.Caption := LanguageList.Values['Default'];
      m2.Caption := LanguageList.Values['Fit Width'];
      m3.Caption := LanguageList.Values['Fit Height'];
    end;
    
    initialization
      LanguageList := TStringList.Create;
    finalization
      LanguageList.Free;
    
    end.
    


    效果图:


  • 相关阅读:
    关于<asp:checkBoxList>控件的对齐方法
    heckboxlist详细用法、checkboxlist用法、checkboxlist
    layoutit note
    查看linux启动的线程信息
    【转】如何修改maven工程jdk版本
    开源bug管理工具-Cynthia
    linux系统相关、硬件、资源
    Nginx文件服务器配置
    windows安装zookeeper单机版
    centos安装nginx
  • 原文地址:https://www.cnblogs.com/del/p/2105844.html
Copyright © 2011-2022 走看看