对,在imename中设定就行了。 在程序中设定的话可以这样。比如: if radiobutton2.Checked then memo1.ImeName:='微软拼音输入法';
建议: 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;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.ImeMode := imChinese; //imClose
Edit1.ImeName := Screen.Imes.Strings [0];
// Edit1.Text := Screen.Imes.Strings [0];
end;
在程序中设定的话可以这样。比如:
if radiobutton2.Checked then
memo1.ImeName:='微软拼音输入法';
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;
还有2个问题:
1,如果设成imChinese,有时候拼音都出现全角。我想直接用半角。是否是ImeMode 引起?
2,有时候右下角的拼音已经换了,但却输不出拼音。什么原因?多次出现这种情况。程序关掉,再打开才行。