我想做一个类似ToolBar的控件,我继承的父类是和ToolBar一样的,我想在我的控件里面任意增加 TToolButton,源码如下:
unit gtab;interfaceuses
 Windows, Messages, SysUtils, Classes, Graphics,Controls, Forms, Dialogs,StdCtrls,
 Buttons, ComCtrls,ExtCtrls, ToolWin, CommCtrl;type
  tgtab = class(TToolWindow)
  private
    { Private declarations }
    FBtnWidth:Integer;
    FBtnHeight:Integer;
    FButtons:TList;
    procedure SetWidth(const Value:Integer);
    procedure SetHeight(const Value:Integer);
    
  protected
    { Protected declarations }
  public
    { Public declarations }
    constructor Create(AOwner:TComponent); override;
    destructor Destroy; override;
    procedure CreateTabPage;
  published
    { Published declarations }
    property BtnWidth:Integer Read FBtnWidth Write SetWidth default 20;
    property BtnHeight:Integer Read FBtnHeight Write SetHeight default 20;
  end;procedure Register;implementationprocedure Register;
begin
  RegisterComponents('Standard', [tgtab]);end;{ tgtab }constructor tgtab.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);  Height:=150;
  Width:=30;
  FBtnWidth:=20;
  FBtnHeight:=20;
  FButtons := TList.Create;
end;procedure tgtab.CreateTabPage;
Var Button: TToolButton;
    aItem:Integer;
begin
  Button := TToolButton.Create(Owner);
  Button.Style:= tbsSeparator;
  if FButtons.Count>0 then
    aItem:=FButtons.Count-1
  else
    aItem:=0;
  FButtons.Insert(aItem,Button);
  button.SetBounds(5,aItem*5+5,20,20);
  button.Parent:=Self;
  button.Perform(TB_ADDBUTTONSA,aItem,0);
end;destructor tgtab.Destroy;
var
  I: Integer;
begin
  for I := 0 to FButtons.Count - 1 do
    if TControl(FButtons[I]) is TToolButton then
      TToolButton(FButtons[I]).Destroy;
  FButtons.Free;
  inherited Destroy;
end;procedure tgtab.SetHeight(const Value:Integer);
begin
  if Value<> FBtnHeight then
    FBtnHeight:=Value;
end;procedure tgtab.SetWidth(const Value:Integer);
begin
  if Value<>FBtnWidth then
    FBtnWidth:=Value;
end;end.问:我注册控件后为什么调用CreateTabPage方法,BUTTON显示不出来?因为BUTTON的确是创建了的。