关键是设置VCL录入控件的属性。下面仅供参考。都是我程序中的部分代码。应该能理解。
1、在窗体
if CheckBox1.Checked
then begin
for i:=0 to ComponentCount-1 do
SetImeFrm.SetVclIme(Components[i],ImeNameS,1);
end
else begin
for i:=0 to ComponentCount-1 do
SetImeFrm.SetVclIme(Components[i],ImeNameS,0);
end;
2、设置SetImeFrm.SetVclIme(Components[i],ImeNameS,0)方法
procedure TSetImeFrm.SetVclIme(VclClass:TComponent;StrImeName:string;K:Integer);
// k=0 取消中文
// k=1 使用中文
begin
if K=0 then
begin
if VclClass is TEdit then
begin
TEdit(VclClass).ImeMode:=imClose;
TEdit(VclClass).ImeName:='';
end;
if VclClass is TMemo then
begin
TMemo(VclClass).ImeMode:=imClose;
TMemo(VclClass).ImeName:='';
end;
if VclClass is TComboBox then
begin
TComboBox(VclClass).ImeMode:=imClose;
TComboBox(VclClass).ImeName:='';
end;
if VclClass is TRichEdit then
begin
TRichEdit(VclClass).ImeMode:=imClose;
TRichEdit(VclClass).ImeName:='';
end;
if VclClass is TDBEdit then
begin
TDBEdit(VclClass).ImeMode:=imClose;
TDBEdit(VclClass).ImeName:='';
end;
if VclClass is TDBMemo then
begin
TDbMemo(VclClass).ImeMode:=imClose;
TDbMemo(VclClass).ImeName:='';
end;
if VclClass is TDBcombobox then
begin
TDbcombobox(VclClass).ImeMode:=imClose;
TDbcombobox(VclClass).ImeName:='';
end;
if VclClass is TDBRichedit then
begin
TDBRichedit(VclClass).ImeMode:=imClose;
TDBRichedit(VclClass).ImeName:='';
end;
if VclClass is TDBGrid then
begin
TDBGrid(VclClass).ImeMode:=imClose;
TDBGrid(VclClass).ImeName:='';
end;
end;
if k=1 then
begin
if VclClass is TEdit then
begin
TEdit(VclClass).ImeMode:=imOpen;
TEdit(VclClass).ImeName:=StrImeName;
end;
if VclClass is TMemo then
begin
TMemo(VclClass).ImeMode:=imOpen;
TMemo(VclClass).ImeName:=StrImeName;
end;
if VclClass is TComboBox then
begin
TComboBox(VclClass).ImeMode:=imOpen;
TComboBox(VclClass).ImeName:=StrImeName;
end;
if VclClass is TRichEdit then
begin
TRichEdit(VclClass).ImeMode:=imOpen;
TRichEdit(VclClass).ImeName:=StrImeName;
end;
if VclClass is TDBEdit then
begin
TDBEdit(VclClass).ImeMode:=imOpen;
TDBEdit(VclClass).ImeName:=StrImeName;
end;
if VclClass is TDbMemo then
begin
TDbMemo(VclClass).ImeMode:=imOpen;
TDbMemo(VclClass).ImeName:=StrImeName;
end;
if VclClass is TDbcombobox then
begin
TDbcombobox(VclClass).ImeMode:=imOpen;
TDbcombobox(VclClass).ImeName:=StrImeName;
end;
if VclClass is TDBRichedit then
begin
TDBRichedit(VclClass).ImeMode:=imOpen;
TDBRichedit(VclClass).ImeName:=StrImeName;
end;
if VclClass is TDBGrid then
begin
TDBGrid(VclClass).ImeMode:=imOpen;
TDBGrid(VclClass).ImeName:=StrImeName;
end;
end;
end;