怎样动态创建控件和设置属性?

kiss2 2001-02-20 08:15:00
比如:建立个label控件,设置caption属性为ok
...全文
151 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lz_0618 2001-02-25
  • 打赏
  • 举报
回复
type
Tform1=class(Tform)
...
private
Procedure OnMyLblClik(Sender:Tobject);
...
end;
.....

procedure Tform1.....
Begin
...
lb.onClick:=OnMyLblClik;
end;

Procedure Tform1.OnMyLblClik(Sender:Tobject);
Begin
ShowMessage('Lable Clicked');
End;

我劝你还是找本书看吧!
kiss2 2001-02-25
  • 打赏
  • 举报
回复
怎样判断已单击刚创建的控件?
zhenww 2001-02-23
  • 打赏
  • 举报
回复
面以动态生成一个按钮为例:
procedure TForm1.Button1Click(Sender: TObject);
var
btn:TButton;
begin
btn:=TButton.Create(Self);
btn.Parent:=Self;
btn.Top:=100;
btn.Left:=100;
btn.Width:=80;
btn.Height:=30;
btn.Caption:='New';
end;
首先要声明一个TButton的变量,然后再调用Create过程,接着设置
它的一些属性就行了,其中最重要的是Parent属性,如果不设置,
将无法显示。如果动态生成的控件是不可视的,则不需Parent属性。
如果是在编写控件时要动态生成控件,则情况又稍有不同,Parent
是TWinControl类型,在上例中,btn的Parent设为Self,这个Self指的
是Form1,而TForm是TWinControl的子孙类,因此是正确的,如果
你编写的控件并不是继承自TWinControl类,则不能将要动态生成
的控件的Parent属性设为Self,可以(我没有用“必须”这个词)设
成Self.Parent,但还有一点要注意的是,给Parent属性赋值并不能在
控件的Create过程中实现,因为此时控件的Parent还没有被赋值,所
应该在控件的Loaded过程中实现。
niucloud-admin 2001-02-21
  • 打赏
  • 举报
回复
var
LB: TLabel;

begin
LB := TLabel.Create(nil);
LB.Parent := self;
LB.Caption := 'OK';
Lb.Left := 10;
Lb.top := 20;
showmessage(Lb.Caption);
lz_0618 2001-02-21
  • 打赏
  • 举报
回复
应该是:
var
LB: TLabel;

begin
LB := TLabel.Create(self);
// ^^^^或Application,这样可以不用lb.free
LB.Parent := self;
LB.Caption := 'OK';
Lb.Left := 10;
Lb.top := 20;
showmessage(Lb.Caption);


bokei 2001-02-20
  • 打赏
  • 举报
回复
如果是动态的创建并管理多个控件,可以使用TObjectList或TList,每创建一个控件就把它加到链表里,以后要用时用链表的items属性来访问
laza 2001-02-20
  • 打赏
  • 举报
回复
var
LB: TLabel;

begin
LB := TLabel.Create(nil);
LB.Parent := self;
LB.Caption := 'OK';
Lb.Left := 10;
Lb.top := 20;
showmessage(Lb.Caption);


注意要是放

Lb.Free;

5,930

社区成员

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

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