我做了一个从TDataModule继承下来的TBaseModule类,并从TBaseModule再继承一个子类TBillModule,并在IDE中制作和注册了一个相应的TBillDataModuleWizard,但是通过这个向导在自动创建一个新单元时,即继承TBillModule产生一个子类,但是发现原来在父类中包含的一些组件无法找到,即父类dfm中定义的一些控件不见了.如何解决该问题,请高手指导.    另:如果将一个TComponent作为另一个TComponent的属性,并在设计时或运行时创建,而非它容器内的一个ChildComponent,例如:  THYBaseModule = class(TDataModule)
  private
    FActions: TActionList;
    procedure ReadComponent;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property Actions: TActionList read FActions write FActions stored False;
  end;!!并非:
  THYBaseModule = class(TDataModule)
    Actions: TActionList;
  private
    procedure ReadComponent;
  public
    constructor Create(AOwner: TComponent); override;
  end;

解决方案 »

  1.   

    你自定义的属性property Actions: TActionList read FActions write FActions stored False;它只是一个THYBaseModule的属性啊
    它怎么会在dataModule里出现你所要的控件呢
    只是datamodul的属性多了个Actions属性而已
    不知我看明白了你的问题没有?
      

  2.   

    重新描述一下我的问题,我想让一个TComponent作为一个属性,并在Create方法中创建,而不是一个简单的属性指向一个已存在的TComponent.但是这样做会有一个问题,在保存时DataModule会将Actions作为它的一个子Component一起TWriter写到流中,再创建的时候就会出现错误,因为从流中读出并创建了Actions。  THYBaseModule = class(TDataModule)
      private
        FActions: TActionList;
        procedure ReadComponent;
      public
        constructor Create(AOwner: TComponent); override;
      published
        property Actions: TActionList read FActions write FActions;
      end;constructor THYBaseModule.Create(AOwner: TComponent);
    begin
      inherited;
      Actions := TActionList.Create(Self);
    end;