动态创建组件的问题

HitomiWP 2003-10-09 04:18:29
我在一个Scrollbox中动态创建了n个panel,当我点击某个panel时表示我选中了它,并把他的颜色改为黑色。在后面的代码要判断以前选种了哪个panel,这时我应该怎样快速找到我以前选种的panel呢?
我现在用的方法是:
for i:=0 to scrollbox.controlcount-1 do
begin
with(scrollbox.controls[i] as TPanel)do
begin
if(color=clblack)then
break;
end;
end;
此时的i就是我选种的panel的序号
不知道还有没有其他的方法?
...全文
39 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
delphi_xizhousheng 2003-10-10
  • 打赏
  • 举报
回复
单选就用个TPanel型的全局变量保存上次的选择,要是多选就放在一个 array of TPanel 类型的动态数组里面 堆栈
delphi_xizhousheng 2003-10-10
  • 打赏
  • 举报
回复
var
panelPos:TPoint;

begin
getcursorpos(panelPos) ;
if FindVCLWindow(panelPos).ClassName='TPanel' then
TPanel(FindVCLWindow(panelPos)).Color:=clblack;
end;
mib3000 2003-10-10
  • 打赏
  • 举报
回复
我只会用全局变量的方法,还有什么更好方法我也想知道哦
关注
duxin 2003-10-10
  • 打赏
  • 举报
回复
是的 用全局变量的方法 还要简单一些
wzds2000 2003-10-10
  • 打赏
  • 举报
回复
我最近也做一个类似这样的东西。。。
我是用一个全局变量(数组)记录这些信息的。。。
idilent 2003-10-09
  • 打赏
  • 举报
回复
选中一个就用一个全局变量存起来,选中下一个就替换,就简单的堆栈。如果想找去点击过的全部的话,就全部放到一个TLIST里面,使用空间换取时间。

5,379

社区成员

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

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