关于Ehlib的ReadOnly小BUG修正。

类别:Delphi 点击:0 评论:0 推荐:
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