自写控件看不见帮改下代码

weill 2008-01-02 10:22:20
意图,做一个这样的控件,一个Panel上放置一个图象和一个进度条。
但是不知道怎么搞。

刚从BCBer转型到Delphi,大家帮帮我哈。

unit DLClassP;

interface

uses
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;

implementation

procedure 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.
...全文
75 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
weill 2008-01-03
  • 打赏
  • 举报
回复
OK全部搞定了,开心中。
真累啊。
weill 2008-01-03
  • 打赏
  • 举报
回复
基本搞定,原来是这样!
虽然两位没有说到关键,但是还是非常感谢你们的帮助。

这个问题搞清楚了,现在接下去试后面的问题了。
stherix 2008-01-03
  • 打赏
  • 举报
回复
SetParent需要override
在里面设置子控件的parent
weill 2008-01-03
  • 打赏
  • 举报
回复
TDLClass = class(TPanel) <-这玩我也想过。

但是……要是我想把进度条做到Panel的外面呢?
阿发伯 2008-01-03
  • 打赏
  • 举报
回复
直接继承TPanel



type
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;


5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧