TComponent 类的派生类怎么设置它的显示区域, 或者说让它属于某个对象,
在用 IDE 编辑时不让它到处显示, 如让这个 Component 属于某一个TabSheet 的实例, 当切换到别的 TTabSheet 的时候, 属于原来的 TTabSheet 实例 Component 就不再显示出来原因:
   我自己做了一个自动生成 SQL 语句的组件, 从 TComponent 派生, 在设计的时候 csDesigning 我要用一个实例去连一个输入框, 这样有一个输入框就得使用一个 SQL 的生成组件, 可是这些组件是属于 Form 的不是属于一个 TabSheet 的所以当我切换到另外的 TabSheet 的时候,这些组件不像输入框一样被隐藏了起来而是一直显示出来, 有没有一种办法使 TComponent 类的派生类也可以属于一些特定的组件而不只是属于 Form

解决方案 »

  1.   

    为什么不从TControl继承。
    然后把宽度和高度定死。就和TComponent效果差不多了。
      

  2.   

    我怕消耗的资源太多, 因为我得像使用  TLabel 一样如果大量使用这个组件
    从 TControl 可能比 TComponent 消耗多得多, 不知有谁有这样的报告, 如果两者的消耗差不多, 我愿意使用 TControl 的
      

  3.   

    TComponent的InstanceSize为48
    TControl的InstanceSize为348
    TLabel的InstanceSize为392我觉的无所谓了
      

  4.   

    当你在生成一个实例的时候,使用如下表示法:
    For example:
    type
      TMyForm = class(Tform)
      protected  private
        btn: TButton;
        edit: TEdit;
      public
        procedure xxx();
      end;Implementationprocedure TMyform.xxx();    
    begin
      edit := TEdit.Create (Self);
      btn := TButton.Create (edit);
    end;
    end.
      

  5.   

    让tcomponent属于tabsheet,从原理上来说是不可能的,
    因为tabsheet是从twincontrol派生,而twincontrol只能容纳tcontrol派生的组件。