我的想法是做一个控件,在里面放上一个编辑筐和一个按钮,但是没有作用,并且运行时候,根本就没有显示,什么原因,如何改进?
unit MyPanel;interfaceuses
  SysUtils, Classes, Controls, ExtCtrls,QStdCtrls,QButtons;type
  TMyPanel = class(TPanel)
  private
  Begin_No: TEdit;
  B_Ok: TBitBtn;
    { Private declarations }
  protected
    { Protected declarations }
  public
  constructor Create(Owner: TComponent); override;
  destructor Destroy; override;
    { Public declarations }
  published
    { Published declarations }
  end;procedure Register;implementationprocedure Register;
begin
  RegisterComponents('xiaoxu', [TMyPanel]);
end;
constructor TMyPanel.Create(Owner: TComponent);
begin
  inherited Create(Owner);
  Begin_No:=TEdit.Create(self);
  B_Ok:=TBitBtn.Create(self);
  B_Ok.Kind:=bkOK;
  Caption:='';
  AutoSize:=true;
end;
destructor TMyPanel.Destroy;
begin
Begin_No.Free;
B_Ok.Free;
inherited;
end;end.

解决方案 »

  1.   

    begin
      inherited Create(Owner);
      Begin_No:=TEdit.Create(self);
      Begin_No.Parent := Self;     <<<<<<<<<<--------
      B_Ok:=TBitBtn.Create(self);
      B_Ok.Parent := Self;         <<<<<<<<<<-------- 
      B_Ok.Kind:=bkOK;
      Caption:='';
      AutoSize:=true;
    end;
    加上这两句
      

  2.   

    还有,width,height,visible都还是设置一下吧.
      

  3.   

    [Error] MyPanel.pas(36): Incompatible types: 'TWidgetControl' and 'TMyPanel'
    兄弟,还是不行呀,出现上面提示!
      

  4.   

    恩,关键就是parent,动态创建的组件也要注意这个问题,否则将不显示。
      

  5.   

    这种通用性不强的东西,但是程序里可能反复使用的,建议用TFrame
      

  6.   

    兄弟,你的uses的QStdCtrls,QButtons是什么目的?
    你的Panel是ExtCtrls单元内的,Buttons是QStdCrtls内的,也就是说一个是普通VCL,一个是CLX?互相不兼容的.