Delphi 动态选择控件的输入法

Delphi 动态选择控件的输入法
2010-10-06         作者:李海彬   阅读:475

     Delphi的EDIT、Memo等可以接受用户输入的控件,都可以通过ImeName属性为其选择一个输入法,但是在编程的过程中,我们无法知道最终的用户会使用哪种输入法,所以对于控件ImeName属性,我们一般不做设置,但在实际应用中,用户又希望他们在录入数据时,能锁定自己常用的一种输入法,其实通过简单的代码,我们就能实现这一点。

procedure TForm1.FormCreate(Sender: TObject);
var I:integer;
begin
//初始化的时候,将电脑所安装的输入法列举加入Combobox1中。
for  i:=0  to screen.Imes.Count-1  do
       combobox1.Items.Add(screen.Imes.Strings[i]);
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
var I:integer;
begin
//--在输入法的选择改变后,重新设置控件的ImeName。
 I:=0 to self.ComponentCount-1   do
   begin
       //以下是设置Edit、Memo、Combobox的输入法,其它控件改变类名即可。
      if (self.Components[i].ClassNameIs('Tedit'))  then
         (self.Components[i] as tedit).ImeName :=ComboBox1.Text;
      if (self.Components[i].ClassNameIs('Tmemo'))  then
         (self.Components[i] as tmemo).ImeName :=ComboBox1.Text;
      if (self.Components[i].ClassNameIs('Tcombobox'))  then
         (self.Components[i] as tcombobox).ImeName :=ComboBox1.Text;
   end;
end;

 
posted on 2012-06-03 21:00  为人民服务  阅读(495)  评论(0编辑  收藏  举报