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;获得扁平风格;可为你的程序编辑控件添加了不少的风格。
别忘了编译包文件。
|