关于动态生存checkbox的问题

beil0eve 2008-11-28 02:56:33
我要在界面上动态生成chcekbox
checkbox的caption属性是由接受来的数据确定的
数据是一条条发过来的
每次不确定有多少条 也就不确定生成多少checkbox
每次刷新的时候前面的checkbox就要free掉
重新根据接受的数据来生成新的
位置也要自动排列
这个问题该怎么做
在线等
...全文
67 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwk_9 2008-11-29
  • 打赏
  • 举报
回复
如果非得用CheckBox的话,建议用控件数组(即4楼的方法)
genispan 2008-11-28
  • 打赏
  • 举报
回复
你可以把checkbox放在一个panel上面 然后遍历上面的checkbox控件 如果存在 则free
然后 再按你的要求创建
yct0605 2008-11-28
  • 打赏
  • 举报
回复
刚好做了一个创建动态控件的演示程序,把动态创建的例子给你参考:具体创建多少个用数组来装载
//初始化label数组
if Length(LabelArry)>0 then
begin
for i:=0 to Length(LabelArry)-1 do
begin
FreeAndNil(LabelArry[i]);
end;
end;
setlength(LabelArry,SimKGZT[0]);
for i:=0 to SimKGZT[0]-1 do
begin
LabelArry[i]:=TLabel.Create(self);
end;
for i:=0 to SimKGZT[0]-1 do
begin
LabelArry[i].Parent:=self;
LabelArry[i].Left:=SimKJZB[i][0];
LabelArry[i].Top:=SimKJZB[i][1];
LabelArry[i].Width:=30;
LabelArry[i].Height:=73;
LabelArry[i].AutoSize:=False;
LabelArry[i].Name:='lb'+inttostr(i+1);
LabelArry[i].Caption:='';
LabelArry[i].Transparent:=True;
LabelArry[i].Cursor:=crHandPoint;
LabelArry[i].Color:=clBlack;
LabelArry[i].Tag:=1;
LabelArry[i].Hint:='开/关';
LabelArry[i].ShowHint:=True;
LabelArry[i].Visible:=True;
LabelArry[i].OnClick:=btnClick;
end;
bdmh 2008-11-28
  • 打赏
  • 举报
回复
为什么非要用checkbox呢,可以改用listview,chicklistbox呀,listview的item可以加checkbox,还可以保存data,可以存任意的数据
sunshinegyy 2008-11-28
  • 打赏
  • 举报
回复
用CheckListBox不就可以了么
panrongzeng 2008-11-28
  • 打赏
  • 举报
回复
定义一个足够你使用的chcekbox 数组
然后根据你数据生成多少个chcekbox。循环的排序
用完之后在循环释放掉。

5,388

社区成员

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

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