我希望在某些输入框,系统能够自动获得最前面的汉字输入法。一般当前输入法为英文,而不同机器的中文输入法又不同。希望系统能够自动调用第一个中文输入法。
请教!

解决方案 »

  1.   

    在输入框(edit等)的imeName属性中设置就可以了。另外再注意一下imeMode属性。
      

  2.   

    //添加一个 Edit1 控件,在 FormCreate 加入下面代码:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Edit1.ImeMode := imChinese; //imClose
      Edit1.ImeName := Screen.Imes.Strings [0];
      // Edit1.Text := Screen.Imes.Strings [0];
    end;
      

  3.   

    对,在imename中设定就行了。
    在程序中设定的话可以这样。比如:
    if radiobutton2.Checked then
    memo1.ImeName:='微软拼音输入法';
      

  4.   

    建议:
    procedure TmainForm.SetImeName(strImeName:String);//
    begin
      if (Screen.ActiveControl<>nil) then
      begin
        if (Screen.ActiveControl is TWincontrol) then
            TWincontrol(Screen.ActiveControl).ImeName:=strImeName;
      end;
    end;procedure TmainForm.DoOnActiveControlChange(Sender: TObject);
    begin
      //设置当前控件的的输入法
      SetImeName(Sceen.imes[0]);
    end;
    procedure TmainForm.FormCreate(Sender: TObject);
    begin
      Screen.OnActiveControlChange:=DoOnActiveControlChange;
    end;
      

  5.   

    谢谢诸位。
    还有2个问题:
    1,如果设成imChinese,有时候拼音都出现全角。我想直接用半角。是否是ImeMode 引起?
    2,有时候右下角的拼音已经换了,但却输不出拼音。什么原因?多次出现这种情况。程序关掉,再打开才行。