请高手帮忙,类的问题。(50分)

  • 主题发起人 主题发起人 jingandhe
  • 开始时间 开始时间
J

jingandhe

Unregistered / Unconfirmed
GUEST, unregistred user!
一个Form1上有三个Label,三个edit,要编写一个类,这个类的功能是管理Form1上的所有控件,这个类能够动态查找出Form上的所有控件。当Form上的控件增加时,也能够自动找出。如又添加了一个label,这个类能自动找出现在form上的控件是四个label,三个eidt。
 
TComponet就提供这些相关的功能,也就是组件管理服务
管理这些可以使用TList,TCollection等保存这些。
你要开发的话,仿照TComponet的组件管理服务的开发思想了。
 
是参考delphi/sourse/rtl/common/classes.pas中的Tcomponent类的写法吗?
 
能不能给点更具体的建议?
 
tComponet就已经很好了
难道你想做一个更好的吗
 
聚合Compnents数组就行了. 那是个全局变量.它装载了所有存在的组件. 如果你想更加灵活就自己写, 先吧存在的装入一个list. 然后每次动态增加,就add一个进到list.这样就可以自如管理了.
 
因为我要实现的这个类不光是要管理这些控件还要给控件赋值,这时候是不是直接继承Tcomponent,然后再加入我要实现的功能呢?不知道我说清楚了没有?
 
to duhai_lee
谢谢,用你说的实现了,现在比如在list里装入了界面上所有的label,用list的哪个属性可以定位到任意一个label,可以对这个label的属性赋值呢?
 
我测试将Form上所有label放入Flist中,代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
flist:Tlist;
begin
try
flist:=Tlist.Create;
for i:=0 to componentcount-1 do
begin
if components is TLabel then
flist.Add(components);
end;
Tlabel(flist.Items[0]).caption:='hello';
finally
end;
end;
现在编译通过了,就是想问问为什么在Tlabel(flist.Items[0])后写“.”没有给出属性方法选择框呢?是不是代码还是有什么问题.
 
to duhai_lee 虽然最后你不理我了还是要谢谢你,给你分了.
 
to duhai_lee 虽然最后你不理我了还是要谢谢你,给你分了.
 
后退
顶部