动态创建控件,在线等

zerolx 2003-08-19 02:48:16
我动态创建了三个CheckBox
但我怎么调用
var
i,ChkBoxTag,ChkBoxTop:integer;
begin
ChkBoxTag:=1;
ChkBoxTag:=10;
for i:= 1 to 3 do
begin
ChkBx := TCheckBox.Create(Application);
ChkBox.Name := 'A'+inttostr(I);
ChkBox.Parent := Sheet;
ChkBox.Left := 56;
ChkBox.Top := chkBoxTop;
ChkBox.Tag := ChkBoxTag;
inc(ChkBoxTag);
ChkBoxTop := ChkBoxTop+20;
end;
end;
我怎么判断第一个,或第二个,或第三个控件 的Checked=True?????

...全文
20 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
charles2118 2003-08-19
  • 打赏
  • 举报
回复
hjb8000(北极熊)的方法,如果form上只有checkbox,比较可行,但是如果有许多个控件,而且是非checkbox的,不是很合适!
charles2118 2003-08-19
  • 打赏
  • 举报
回复
呵呵,又是这个问题,再说一下吧,看下面的例子
定义一个控件数组
var
EditArray:array of TEdit
begin
setlength(EditArray,theLengthYouWanted);
for i:=0 to setlength(EditArray,theLengthYouWanted)-1 do
begin
EditArray[i]:=TEdit.create(self);
with EditArray[i] do
begin
// 属性编写
top:=....
Parent:=...
//事件编写
OnKeyPress:=...
end;
end;
注意事项,在定义它的top,height,left等属性时要小心设置,最好和i关联,不然会出现所有的edit重叠在一起,只见到一个的现象的

edit改成checkbox就行了啊!

hjb8000 2003-08-19
  • 打赏
  • 举报
回复
FindComponent('A'+inttostr(I))
lvloj 2003-08-19
  • 打赏
  • 举报
回复
var
i,ChkBoxTag,ChkBoxTop:integer;
ChkList: TList;
begin
ChkBoxTag:=1;
ChkBoxTag:=10;
ChkList := TList.Create;
for i:= 1 to 3 do
begin
ChkBx := TCheckBox.Create(Application);
ChkBox.Name := 'A'+inttostr(I);
ChkBox.Parent := Sheet;
ChkBox.Left := 56;
ChkBox.Top := chkBoxTop;
ChkBox.Tag := ChkBoxTag;
ChkList.Add(ChkBx);
inc(ChkBoxTag);
ChkBoxTop := ChkBoxTop+20;
end;
//我怎么判断第一个,或第二个,或第三个控件 的Checked=True?????
for I := 0 to ChkList.Count - 1 do
begin
if TCheckBox(ChkList.Items[I]).Checked then
//第I或TCheckBox(ChkList.Items[I]).Tag个是True;
end;
ChkList.Free;
end;
firstshine 2003-08-19
  • 打赏
  • 举报
回复
把这些checkbox定义成为全局的或者某个对象的域变量,例如:
tform1 = class(tform)
private
a:array[1..3] of TCheckbox;
public
constructor create(aowner:tcomponent);override;
end;

constructor tform1.create(aowner:tcomponent);
var
i,ChkBoxTag,ChkBoxTop:integer;
begin
inherited;
ChkBoxTag:=1;
ChkBoxTag:=10;
for i:= 1 to 3 do
begin
a[i] := TCheckBox.Create(Application);
a[i].Name := 'A'+inttostr(I);
a[i].Parent := self;
a[i].Left := 56*i;
a[i].Top := chkBoxTop;
a[i].Tag := ChkBoxTag;
inc(ChkBoxTag);
ChkBoxTop := ChkBoxTop+20;
end;
end;

5,379

社区成员

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

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