关于控件的创建顺序的控制(74分)

  • 主题发起人 主题发起人 dependmyself
  • 开始时间 开始时间
D

dependmyself

Unregistered / Unconfirmed
GUEST, unregistred user!
相信大家一定用过component这个类,这个类对于对一些相同控件作相同的操作,非常的方便
但是要如何控制它的顺序呢?如:我先后建立三个TEdit
Edit1,Edit2,Edit3并作如下操作:
var i:integer;
strlstObj:TstringList;
strlstObj:=TstringList.create;
for i:=0 to componentCount-1 do
begin
if components is Tedit then
strlstObj.objects.add(inttostr(i),component);
end;
这样Strlstobj里面存的分别是Edit1,edit2,edit3

但是我要是在创建Edit2的时候把Edit1给删除了,再创建Edit3这时创建顺序变成了:
Edit2,Edit1,Edit3,我要做如何修改才能使用strlstObj的存储顺序也为Edit1,Edit2,Edit3呢?

说了这么多,也不知道说清楚了没有,请大家关注一下,手头上的分数不多,只有这么多了:(
 
在需要的时候动态创建!
 
去设置它的taborder属性啊!
你快试一下,然后给我分啦!我专家分只有15啦!
 
to:dedema,
我本来也以为是Taborder来控制的,但是其实不是这样的,你试试就知道了:(
 
无法控制的,
你创建控件时,Create(AOwner)这个函数中,AOwner就是其Owner
他是根据创建顺序来排列的
先创建谁,谁就在前,后创建谁,谁就在后。
删除的控件,就会在Components中剔除
 
你设置tag的值勤来控制
 
既然你都知道是要创建是 Edit1 ,还是 Edit2 ,那你应该在程序中决定是调用
InsertObject 还是 AddObject 啊。。
另外你这下面这句可以用啊?
strlstObj.objects.add(inttostr(i),component);
// strlstObj.AddObject(inttostr(i),component); ?

 
后退
顶部