我想作这样一个控件:在CoolBar上创建一个 ToolBar, 再在Toolbar上创建N个 SpeedButton代码如下:        TcySpeedButton = Class(TSpeedButton)
        Private
        Public
                Constructor Create(aOwner: TComponent); Override;
                Destructor Destroy; Override;
        end;        TcyCoolBar = Class(TCoolBar)
        Private
                ToolBar: TToolBar;
                SpeedNew: TcySpeedButton;
                SpeedSave: TcySpeedButton;
                SpeedDel: TcySpeedButton;
                SpeedPrint: TcySpeedButton;
                SpeedClose: TcySpeedButton;
        protected
        public
                constructor Create(aOwner: TComponent); Override;
                destructor Destroy; override;
        published        end;constructor TcyCoolBar.Create(aOwner: TComponent);
begin
  inherited;
  Self.Height := 55;
  ToolBar := TToolBar.Create(Self);
  With ToolBar do
  begin
        ToolBar.Height := 52;
        Parent := Self;
        
        SpeedNew := TcySpeedButton.Create(nil);
        With   SpeedNew  do
        begin
              Caption := '新增';
              Glyph.LoadFromFile('D:\Work\BMP\5.bmp');
              Parent := ToolBar;   //这儿有错!
        end;
  end;
  
end;destructor TcyCoolBar.Destroy;
begin
  if assigned(ToolBar) then
  FreeAndNil(ToolBar);
  inherited;
end;
{ TcySpeedButton }constructor TcySpeedButton.Create(aOwner: TComponent);
begin
  inherited;
  Height := 50;
  Width := 45;
  Layout := blGlyphTop;end;destructor TcySpeedButton.Destroy;
begin  inherited;
end;

解决方案 »

  1.   

    SpeedNew := TcySpeedButton.Create(nil);
            With   SpeedNew  do
            begin
                  Caption := '新增';
                  Glyph.LoadFromFile('D:\Work\BMP\5.bmp');
                  Parent := ToolBar;   //这儿有错!
            end;Parent 不知道应该指定谁?
    CoolBar , 创建时看不到!
    ToolBar, 创建时报错(Control '' has no Parent Windows)
      

  2.   

    parent 写 self 指得是他的父类CoolBar所产生的实例,你在这里写的时候类还没有具体实例化,不存在ToolBar这样的实例名称
      

  3.   

    SpeedNew := TcySpeedButton.Create(CoolBar);
    create的参数是ower,指的就是panrent。还有,动态创建的speedbutton默认是不可见的,还应该把visible设置成true。