意图,做一个这样的控件,一个Panel上放置一个图象和一个进度条。
但是不知道怎么搞。刚从BCBer转型到Delphi,大家帮帮我哈。unit DLClassP;interfaceuses
  SysUtils, Classes, Controls,
  Windows, Messages, Variants, Graphics, Forms,
  Dialogs, ComCtrls, ExtCtrls;type
  TDLClass = class(TCustomControl)
  private
    { Private declarations }
    Panel1: TPanel;
    Image1: TImage;
    ProgressBar1: TProgressBar;
  protected
    { Protected declarations }
  public
    { Protected declarations }
    constructor Create(AOwner:TComponent);override; 
  published
    { Published declarations }
  end;  procedure Register;implementationprocedure Register;begin
  RegisterComponents('AMePack', [TDLClass]);
end;constructor TDLClass.Create(AOwner:TComponent);
begin
/////////////猜想下面三行代码有问题//////////////
inherited create(AOwner);
Panel1 := TPanel.Create(self);
Panel1.Parent := self.Parent;
Panel1.Left := 0;
Panel1.Top := 0;
Panel1.Height := 142;
Panel1.Width := 452;Image1:=TImage.Create(self);
Image1.Parent := Panel1;
Image1.Left := 1;
Image1.Top := 0;
Image1.Height := 120;
Image1.Width := 450;ProgressBar1:=TProgressBar.Create(self);
ProgressBar1.Parent := Panel1;
Image1.Left := 1;
Image1.Top := 121;
Image1.Height := 20;
Image1.Width := 450;end;end.

解决方案 »

  1.   

    直接继承TPaneltype 
        TDLClass   =   class(TPanel) 
        private 
            {   Private   declarations   } 
            Image1:   TImage; 
            ProgressBar1:   TProgressBar; 
        protected 
            {   Protected   declarations   } 
        public 
            {   Protected   declarations   } 
            constructor   Create(AOwner:TComponent);override;   
        published 
            {   Published   declarations   } 
        end;     procedure   Register; implementation procedure   Register; begin 
        RegisterComponents('AMePack',   [TDLClass]); 
    end; constructor   TDLClass.Create(AOwner:TComponent); 
    begin 
    /////////////猜想下面三行代码有问题////////////// 
    inherited   create(AOwner); 
    Image1:=TImage.Create(self); 
    Image1.Parent   :=   Self; 
    Image1.Left   :=   1; 
    Image1.Top   :=   0; 
    Image1.Height   :=   120; 
    Image1.Width   :=   450; ProgressBar1:=TProgressBar.Create(self); 
    ProgressBar1.Parent   :=   Self; 
    Image1.Left   :=   1; 
    Image1.Top   :=   121; 
    Image1.Height   :=   20; 
    Image1.Width   :=   450; end; 
      

  2.   

    TDLClass   =   class(TPanel) <-这玩我也想过。但是……要是我想把进度条做到Panel的外面呢?
      

  3.   

    SetParent需要override
    在里面设置子控件的parent