在开发的过程中,遇到一个难题,如何在程序运行的时候 选中多个控件 对其 进行排序 现在我主要是不知道 如何选中多个控件
哪位大哥要是有好的解决办法,请赐教...小弟在这不胜感激啊.. 如果能提供源代码的那就更感谢了...
解决方案 »
- 出现这个错误提示是怎么回事啊?
- OLEDB.4.0 连接dbf 数据库,生成数据库字段宽度与实际不符,这是为什么
- fastreport报表的问题,不解决我死不瞑目!
- 串口通讯问题:com1已被别的端口控制,请问如何做能实时得到com1接收的内容。
- ehom在吗?能帮我解决这个问题吗?
- 如何计算array of char的实际长度
- DELPHI中有没有显示磁盘目录列表的控件?
- ACCESS数据库中的二进制文件导出。
- 第二次提问!!!我自己生成的按钮为什么现实不出来?????
- 如何访问不在当前目录下的dbf文件?
- 工作两年多,有时候觉得自己啥也不会
- 想写一个服务端+很多客户端操发邮件,不知道怎么开始
运行的时候貌似不能多选吧……
在mouseDown事件中
if ssShift in shift then
begin
aList.add(sender as TWinControl);
end;并且还有一些细节问题,比如选中控件显示,已选中控件第二次点击从列表删除等。
2:新建一个aList:TStringList;
3:在mouseDown事件中
if ssShift in shift then
begin
(sender as TControl).font.color:=clred;给选中的控件的字体变颜色,以表示此控件选中了
aList.add(rightstr((sender as TControl).name,3)); //将此控件的名称的最三位加载到alist当中去
end;
4:aList.sort //排序
5:
for i:=0 to panel1.controlcount-1 do
begin
if alist.index(rightstr(panel1.controls[i].name,3)>=0
begin
Panel1.controls[i].位置:=index(rightstr(panel1.controls[i].name,3) //看这个处于Alist的第几位,你就 把控件放到第几的位置(至于这个控件的第N个位置的left和top,你有你自己的算法,你自己搞定)
end;
end;
这位朋友,你好
很感谢你抽空 关注了我这个问题
你说的思路我有去尝试过...不过 有几个地方还是不理解为什么要取name的 后三位 ?
这样做的话..还要去修改项目里的很多控件 不实用有没有办法 我选择什么控件..就对哪些控件排序呢? 而且是像 cnpack 那样 左对齐 右对齐 等等如果有好的想法..只需提供 思路就行..不胜感激
因为将控件的名称存入了aList:TStriingList里,而如果aList.sort后,如果控件超过了10个。例如1,2,3,4....12,13,14,.sort后就会变成了1,12,13,14,2,3,4。这样,顺序就乱掉了。而如果001,002,003,004,012,013,014,就不会乱了
这个地址 有些说明