怎样在运行时创建控件?

benben1hao 2003-08-19 04:23:37
我根据一条IF语句,如果为真,则在指定位置创建一个EDIT,否则则创建一个COMBOBOX。
...全文
32 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
knock 2003-08-19
  • 打赏
  • 举报
回复
你拖的控件和运行时动态创建的控件是一样的,不同的是,动态创建的你需要用代码设定控件的属性,而静态的控件可以直接从Object Inspector里设置
Shawphen2000 2003-08-19
  • 打赏
  • 举报
回复
PageTab控件如何在运行时自动添加一页呢?
qiume 2003-08-19
  • 打赏
  • 举报
回复
给你个例子:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

var
G_Boolean: Boolean; // 建立TEdit的条件;
vEdit: TEdit; // 要建立的TEdit;
vComboBox: TComboBox; // 要建立的TComboBox;

procedure TForm1.Button1Click(Sender: TObject);
begin
G_Boolean := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if G_Boolean then
begin
vEdit := TEdit.Create(Self);
vEdit.Name := 'vEdit';
vEdit.Parent := Self;
vEdit.Top := 100;
vEdit.Left := 100;
vEdit.Width := 200;
vEdit.Height := 20;
vEdit.Text := 'vEdit';
end
else begin
vComboBox := TComboBox.Create(Self);
vComboBox.Name := 'vComboBox';
vComboBox.Parent := Self;
vComboBox.Top := 100;
vComboBox.Left := 100;
vComboBox.Width := 200;
vComboBox.Height := 20;
vComboBox.Text := 'vComboBox';
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
vEdit.Free;
vComboBox.Free;
end;

end.

// 窗体上需要两个TButton, Button1和Button2;
ysycrazy 2003-08-19
  • 打赏
  • 举报
回复
procedure TForm1.Button2Click(Sender: TObject);
var edit1:TEdit;
combox1:TComboBox;
begin
if true then
begin
edit1:=TEdit.create(self);
edit1.parent:=form1;
edit1.left:=10;
edit1.top:=10;
end
else
begin
combox1:=TComboBox.create(self);
combox1.parent:=form1;
combox1.left:=10;
combox1.top:=10;
end;
end;
tjff2000 2003-08-19
  • 打赏
  • 举报
回复
来晚了。
charles2118 2003-08-19
  • 打赏
  • 举报
回复
myComboBox:TComboBox;
begin
if 条件then
with TEdit.Create(self)do
begin
属性设置;
事件设置;
end
else
with TComboBox.Create(self)do
begin
属性设置;
事件设置;
end
end;

dh9450 2003-08-19
  • 打赏
  • 举报
回复
NAME不指定?
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
Edit: TEdit;
ComboBox: TComboBox;
begin
if 1=1 then
begin
Edit:=TEdit.Create(self);
edit.Parent:=self;
edit.Left:=0;
edit.Top:=100;
edit.Visible:=true;
end
else
begin
ComboBox:=TComboBox.Create(self);
ComboBox.Parent:=self;
ComboBox.Left:=0;
ComboBox.Top:=100;
ComboBox.Visible:=true;
end;
end;

5,379

社区成员

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

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