自己开发的控件输入法出现小问题,请指教? ( 积分: 50 )

  • 主题发起人 主题发起人 hjp0214
  • 开始时间 开始时间
H

hjp0214

Unregistered / Unconfirmed
GUEST, unregistred user!
自己开发的数据绑定控件,第一次切换到中文输入法时,总是第一个字母输入到控件中,后来出现中文输入。例如。中文输入"hua","h"被输入到控件中,而“ua”出现中文输入中,重新删除,第二次就不会,不知道为什么?
标准控件的代码:
procedure TDBEdit.CMEnter(var Message: TCMEnter);
begin
SetFocused(True);
inherited;
if SysLocale.FarEast and FDataLink.CanModify then --就这句
inherited ReadOnly := False;
end;
而自己开发的控件没有此代码。
如果加上该代码,又不能控制,控件根据数据源的AutoEdit属性为false ,就不能输入的效果
 
InfoPower.v4000.6.FS.For.Delphi7 控件包中的dbedit也存在类似问题
 
在新的一年期待有网友帮忙解决问题。
 
你可以这个控件默认的输入法就是中文呀,这样就不用切换了,哈哈。
 
procedure TZRDBCustomEdit.CMEnter(var Message: TCMEnter);
begin
SetFocused(True);
inherited;
FCurrentEnterText := Text;
if AutoSelect and not (csLButtonDown in ControlState) then SelectAll;
if FDataLink.DataSource.AutoEdit then--增加这行代码
if SysLocale.FarEast and FDataLink.CanModify then
SetControlReadOnly(ReadOnly);
end;
 
后退
顶部