Ehlib本来是一个非常不错的控件,但是TDBEditEh的ReadOnly有一些问题,在后续版本之间也尚未修正。经追踪源代码后,发现
procedure TCustomDBEditEh.CMEnter(var Message: TCMEnter);
begin
SetFocused(True);
inherited;
if AutoSelect and not (csLButtonDown in ControlState) then SelectAll;
if SysLocale.FarEast and FDataLink.CanModify then
SetControlReadOnly(False ); //有问题,关联数据集后将ReadOnly改为True总是可以为修
//改,因此这里出现问。
end;
//再查看Readonly属性声明,域变量FReadOnly 有问题,将改为即可。
SetControlReadOnly(FReadOnly); //将此函数修改
//更早一点的版本我不知道,但是,2.5版本以来就有这个问题,按照此方法可以解决、、ReadOnly问题。
编译包文(Ehlib7.0,或Ehlib6.0,动态包)件即可。如果你用包方式发布,还将编译过的包覆盖原来的BPL文件即可。
另外,为了支持D6,D7特有的扁平风格界面。在单元DBCtrlsEh里的每一个TDBEDITEH,TDBDateTimeEdithEh等等编辑控件加入,
property BevelEdges;
property BevelInner;
property BevelKind default bkNone;
property BevelOuter;
我们在设计期可以设置 BorderStype := bsNone; BevelKind :=bkTile;获得扁平风格;可为你的程序编辑控件添加了不少的风格。
别忘了编译包文件。
本文地址:http://com.8s8s.com/it/it4712.htm