我自定义了一个控件从checklistbox里继承,自己加了几个功能,然后再加几个按钮进去.现在要把这个控件跟按钮合在一起组成一个新的控件.现在遇到的问题不会组装成一个控件,我的想法是把这些放在一个面板上.请帮我看一下下面的代码,在要使用这个控件的时候会跳出 control '' has no parent window

解决方案 »

  1.   

    type
      T_CheckListBox = class(TCheckListBox)
      private
        { Private declarations }
        FPanel:TPanel;
        FbtnSelAll:TButton;
        FbtnClearAll:TButton;
        FbtnUp:TButton;
        FbtnDown:TButton;
        FLabel: TLabel;
        ChB:TCheckBox;
        CLBList:TList;
    Constructor T_CheckListBox.Create(AOwner:TComponent);
    begin
      Inherited Create(AOwner);
      CLBList:=TList.Create;
      FPanel:=TPanel.Create(self);
      FbtnSelAll:=TButton.Create(self);
      FbtnClearAll:=TButton.Create(self);
      FbtnUp:=TButton.Create(self);
      FbtnDown:=TButton.Create(self);
      FLabel:=TLabel.Create(self);
      FLabel.Caption:='移'+#13+'动';  FPanel.Parent:=(Parent as TPanel);   
      FPanel.Left:=216;
      FPanel.Top:=12;
      FPanel.Width:=193;
      FPanel.Height:=321;  self.Parent:=FPanel;
      self.Left:=5;
      self.Top:=5;
      self.Width:=160;
      self.Height:=290;  FbtnSelAll.Parent:=FPanel;
      FbtnSelAll.Caption:='全选';
      FbtnSelAll.Left:=32;
      FbtnSelAll.Top:=296;
      FbtnSelAll.Width:=56;
      FbtnSelAll.Height:=21;
      FbtnSelAll.OnClick:=btnSelAllClick;  FbtnClearAll.Parent:=FPanel;
      FbtnClearAll.Caption:='全清';
      FbtnClearAll.Left:=110;
      FbtnClearAll.Top:=296;
      FbtnClearAll.Width:=56;
      FbtnClearAll.Height:=21;
      FbtnClearAll.OnClick:=btnClearAllClick;  FbtnUp.Parent:=FPanel;
      FbtnUp.Caption:='▲';
      FbtnUp.Left:=168;
      FbtnUp.Top:=72;
      FbtnUp.Width:=17;
      FbtnUp.Height:=25;
      FbtnUp.OnClick:=btnUpClick;  FLabel.Parent:=FPanel;
      FLabel.Left:=168;
      FLabel.Top:=109;
      FLabel.Width:=17;
      FLabel.Height:=25;  FbtnDown.Parent:=FPanel;
      FbtnDown.Caption:='▼';
      FbtnDown.Left:=168;
      FbtnDown.Top:=140;
      FbtnDown.Width:=17;
      FbtnDown.Height:=25;
      FbtnDown.OnClick:=btnDownClick;
    end;
      

  2.   

    要怎么样才能使这组合成一个控件,而且这个控件还是要从TCheckListBox继承来,如果是从TPanel继承来我可以实现组装在一起但是功能上不满足,就没有TCheckListBox原有的功能啦