你可以改一下DBGridEh,注册TInplaceEditEh及TDBInplaceEditEh。

解决方案 »

  1.   

    我是这么理解你的问题的
    在TInplaceEditMoneyEh及TDBInplaceEditMoneyEh都实现Money的编辑,都不想在两个类中写关于Money编辑的类似代码。
    我觉地可以这么处理:
    1.申明一个接口IMoneyEdit。这个接口是显示对Money的编辑。
    2.有一个类TImplMoneyEdit完成对IMoneyEdit的实现
    3.在TInplaceEditMoneyEh及TDBInplaceEditMoneyEh中都有一个成员变量IMoneyEdit。把所有的Money编辑的功能都转给IMoneyEdit来完成。这样在TInplaceEditMoneyEh及TDBInplaceEditMoneyEh就很少有对Money编辑的处理代码,全部有IMoneyEdit来完成了。
    4.这样就把Money编辑的实现(如:TImplMoneyEdit)和具体表现(如:TInplaceEditMoneyEh及TDBInplaceEditMoneyEh)很好地分离出来了。你以后可以有一个新的实现类TExImplMoneyEdit,来完成对IMoneyEdit的实现。而在TInplaceEditMoneyEh及TDBInplaceEditMoneyEh可以几乎不用更改任何代码。
      

  2.   

    昨天弄一个Ehlib2.2,发现它的DBInplaceEditMoneyEh本身就是由TInplaceEDit及几个接口组成的。待我好好看看是否能使用WuHeHai兄的建议。
    但根本的问题还是存在。我想,最好还是直接在基类上改,将基类实现重载两个类,否则子类如果一多,那改起来就异常麻烦