社区
C++ Builder
帖子详情
季世平大哥:请教一个问题,
yangguo_god
2002-08-05 05:59:52
如何动态的创建n个Label,n为一个表的记录数,Label1,2,3,4,...caption的值分别对应表中的一个字段下n个记录,
如何动态的进行排版》
季大哥,麻烦你了
...全文
37
11
打赏
收藏
季世平大哥:请教一个问题,
如何动态的创建n个Label,n为一个表的记录数,Label1,2,3,4,...caption的值分别对应表中的一个字段下n个记录, 如何动态的进行排版》 季大哥,麻烦你了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yangguo_god
2002-08-06
打赏
举报
回复
我明白了,不过,要怎么动态的创建label的事件了,而且如果我在form的create事件中创建这些元件,如果要在其他的事件中访问这些动态创建的元件,是不是要重新定义,还是可以直接访问
yangguo_god
2002-08-06
打赏
举报
回复
谢谢了,季大哥,
还有aawolf(羌狼) 大哥,改天再向你请教,买单
aawolf
2002-08-06
打赏
举报
回复
我有个建议,动态创建Label后把它存入一个vector里,然后在不同的地方调用。
给你篇文章看,可能有用。
http://www.csdn.net/Develop/article/14/14493.shtm
卖瓜啦!
jishiping
2002-08-06
打赏
举报
回复
当然可以了,如果已经Form的变量名为Form1,那么可以:
TLabel* Label = (TLabel*)Form1->FindComponent(
"Label10");
if (Label != NULL) Label->Top = Label->Top+5;
yangguo_god
2002-08-06
打赏
举报
回复
如果要对这些动态创建的控件,单独访问某一个,是不是,直接访问就可以了,
在其他窗口是不是也可以这么访问这些动态的控件
jishiping
2002-08-06
打赏
举报
回复
你需要先在class里写好TLabel的事件函数,假设这些TLabel的OnClick
事件函数为LabelClick,动态生成TLabel的事件:
TLabel* Label = new TLabel(this);
Label->OnClick = LabelClick;
//.......
要在其他的事件中访问这些动态创建的元件,可以根据动态生成的TLabel
的名字来查找这些TLabel。如:上面动态生成的TLabel的名字为Label0,
Label1, .... 那么可以用下面的方法访问这些TLabel:
for(int n=0; n<10; n++) {
TLabel* Label = (TLabel*)FindComponent(
AnsiString("Label")+n);
if (Label != NULL)
Label->Top = Label->Top+5;
}
jishiping
2002-08-05
打赏
举报
回复
一个一个来计算其位置就没有必要了。不考虑其它的控件,比如在Form上,
每行放5个TLabel的话,就可以这样啊(边上空4个像素):
for(int n=0; !Query1->Eof; n++,Query1->Next()) {
TLabel* Label = new TLabel(this);
Label->Parent = this;
Label->Name = AnsiString("Label") + n;
Label->Left = 4 + (n%5)*(ClientWidth-8)/5;
Label->Top = 4 + n/5 * abs(Label->Font->Height);
//这儿假设是将第一个字段的值显示出来
Label->Caption = Query1->Fields->Fields[0]->AsString;
}
whitelion
2002-08-05
打赏
举报
回复
千万别怕麻烦,一个一个来计算其位置
jishiping
2002-08-05
打赏
举报
回复
至于每个TLabel的位置,你自己指定了。我想一个Form上,除了这些TLabel
之外,你可能还会放一些其它的控件。所以,具体的布局,需要根据具体情
况具体分析。
//.....假设这儿Query1已经打开了(如果是Table,将Query1换成
//Table1就可以了)
for(int n=1; !Query1->Eof; n++,Query1->Next()) {
TLabel* Label = new TLabel(this);
Label->Parent = this;
Label->Left = xxx; //指定位置,这儿由你自己填充了
Label->Top = xxx;
//这儿假设是将第一个字段的值显示出来
Label->Caption = Query1->Fields->Fields[0]->AsString;
}
wwxc18
2002-08-05
打赏
举报
回复
有一個關於創建動態TButton的程序供參考
//-- create button array
TButton *Button[10];
for (int i=0;i<10;i++)
{
Button[i] = new TButton(this);
Button[i]->Left = i*100+5;
Button[i]->Top = 10;
Button[i]->Width = 80;
Button[i]->Height = 30;
Button[i]->Caption = "Button"+(AnsiString)i;
Button[i]->Name = "Button"+(AnsiString)i;
Button[i]->Parent = Form1;
}
//-- drop Button Array
for (int i=0;i<10;i++)
delete Button[i];
aawolf
2002-08-05
打赏
举报
回复
动态排版?还是动态排序?
你是说让控件支持拖拽,还是支持排序?
这个问题好有趣,可惜不是问我的。
CSDN技术英雄会,网友怎么看?
好心的郑昀给总结了社区英雄们的与会感言大赏,不断有英雄回家了,我也罗列一份最新的: 4月5日: ◆CSDN Hero 2007颁奖典礼 -I (程强,ccBoy)乘坐接送的专车到了入住的酒店,开始领取房间门卡、接待的登记、衣服...
学习成功:中学生成就梦想的15堂必修课
管斌全:《学习成功:中学生成就梦想的15堂必修课》笛案:自信国内外成功学的著作看过不少,但我只向人推荐管斌全的作品。... 第
一个
版本是由北京海潮出版社(2002年10月)出版,书名为《我信我能我
《红楼梦》的作者真的是曹雪芹吗?
谈这个
问题
,必须先认识到一点:曹雪芹这三个字它只是个笔名,红楼的作者,在真实历史中,另有自己的真名实姓。而我们想找的,就是“曹雪芹”究竟是历史上的哪路好汉。1921年,胡适写了一本《红楼梦考证》,说曹雪芹...
有没有人能帮帮我啊呜呜呜 这个简历目前
一个
大厂的笔试都没接到
【企业介绍】虚拟世界游戏公司,C轮明星创业公司,2021年估值10亿美金,致力于构建
一个
属于全年龄的虚拟世 拼多多实习生招募 【拼多多实习生招募】拼多多,电商巨头,等你加入!这里有:实战机会,让你大展拳脚;...
[转]填词
”另一种由野狐禅走入正经,是确有“故国(读仄声)平居有所思”之类或“为伊消得(读仄声)人憔悴”之类的情怀,读别人的,借他人酒杯浇自己块垒,不直接,或吃不饱,于是只好自己拿笔。还有一种,胃口更大,有情怀...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章