我继承了一个PANEL,然后在一个PANEL中添加我新继承的对象,使用的方法是INSERTCONTROL,
提示我类型错误,说我的类不是TCONTROL.我明明是从TPANEL继承的,为什么呢?

解决方案 »

  1.   

    不般不要调用INSERTCONTRO,而是将你的Panel的Parent设为那个Panel即可。
    VCL会自动调用INSERTCONTRO的
      

  2.   

    这样也不行.要求的PARENT要求将是TWidgetControl,现在设置成TPanel提示类型不匹配
      

  3.   

    先顶,给分,呵呵
    你是先通过继承panal写了个控件? 然后再在一个panal控件上面放一个你写的这个控件吗?
    这样的话你先手工放一个试试,不要用语句看看结果
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;type
      tp = class(TPanel)
        public
          lb : TLabel;
          constructor Create(AOwner: TComponent); override;
      end;
      TForm1 = class(TForm)
        Memo1: TMemo;
        Button1: TButton;
        Panel1: TPanel;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      a :tp;
    begin
       a := tp.Create(nil);
       a.Parent := Form1;
       a.Left := 100;
       a.Top := 200;
       a.Caption := 'adsfasf';
    end;{ tp }constructor tp.Create(AOwner: TComponent);
    begin
      inherited;
      lb := TLabel.Create(AOwner);
      lb.Parent := Self;
      lb.Left := 10;
      lb.Top := 10;
      lb.Caption := 'haha';
    end;end.
    WINXP D7下测试通过
      

  5.   

    我要的是我从TPANEL继承出来一个类,然后在其他PANEL上通过InsertControl方法插入数目不要定的新定义的类的对象
      

  6.   

    TPanel(yourcomponent) 强制转化一下试验看看