本人在写一套管理系统,用了TimgEditingBox组件,该组件内嵌了一个Button,我也在该组件上加了一个key属性。分别用text和key属性表示供就商,客户,经手人等名称各代码。在写窗体代码过程中,由于各窗体几乎都会用到客户、供应商、经手人等元素。 现在对于该组件的每个组件的实例,都要编写其事件代码:OnButtonClick、OnChange、OnExit等查找数据库或校验输入准确性。实在是重复的劳动。 请问大侠:是否可以考虑创建一个派生组件与实际的数据库对象关联起来???但与数据库对象关联起来则该派生组件将缺乏通用性,并受数据库限制。
请问应该如何设计以减小重复劳动?

解决方案 »

  1.   

    是否可以考虑创建一个派生组件与实际的数据库对象关联起来???但与数据库对象关联起来则该派生组件将缺乏通用性,并受数据库限制。// 
    Don't do that!
    It should be:
    Define a business upper class(Inherited from TForm), it includes your controls,
    then others form should be inherited from the upper class.
      

  2.   

    复:qiume(杜克[在Coder和Designer之间徘徊]) 
    你的意思是否把表示供应商、客户、经手人、经手人部门等组件放在parent_Form上,然后从该窗体中继承下来?但各窗体之间组件布局总是有区别了,有些窗体有供应商、经手人,有些窗体有客户、经手人 、经手人部门等。这样子窗体就多了一些多余的组件了。。
      

  3.   

    You are very clever.
    An example for the class diagram:
                       TFormBill
                        |     |
        TFormBillPurchase    TFormBillPurchaseSale
    ......
      

  4.   

    能否给我一个祥细的class diagram让我参考,理解你的意思???
    最好是中文的?
      

  5.   

    I am not the class diagram' owner(I work for a company, not myself), so sorry.
      

  6.   

    I am not the class diagram's owner(I work for a company, not myself), so sorry.
      

  7.   

    TFormBillPurchase 光代表采购单还是所有的交易的单据窗体?TFormBillPurchaseSale 又代表什么窗体呢?
      

  8.   

    Sorry, it should be:
                                    TFormBill
                        |                              |
                TFormBillPurchase{Purchase Form} TFormBillSale{Sale Form}
             ......