问两个基本语法概念问题(10分)

  • 主题发起人 主题发起人 lcl_003
  • 开始时间 开始时间
L

lcl_003

Unregistered / Unconfirmed
GUEST, unregistred user!
我动态创建一个filelistbox让它获得一个目录下所有文件名,然后付给3个combobox,
代码如下:

procedure Trunselect.FormCreate(Sender: TObject);
var
flb:tfilelistbox;
i:integer;
a:Tobject;
begin
filepath:=ExtractFilePath(Application.ExeName);

flb:=tfilelistbox.create(self);
flb.mask:='*.*';
flb.parent:=self;
flb.directory:=filepath+'testlist/';
for i:=0 to flb.items.count-1 do
begin
combobox1.AddItem(flb.Items,a);
combobox2.AddItem(flb.Items,a);
combobox3.AddItem(flb.Items,a);
end;
flb.free;
end;

但是定义的a:Tobject;不知道有啥用?combobox.additem()里就的有个Tobject的参数,
Tobject是什么?

flb:=tfilelistbox.create(self);
这里的self是什么?

多谢了

 
self 就是对象本身,在这里就是TFileListbox对象

Tobject是任意对象,我认为这里没有什么大的作用,只是为了满足combobox.additem方法
的参数而已!
 
SELF是对象本身的代词,用来引用构造、析构等类方法的,类方法区别与对象方法,C++里
的静态方法,在没有事例化对象时就可以引用的方法。TOBJECT是VCL里的基类,你看任何一个
VCL组件的继承树都可以看到他在最顶层,它有很多方法属性了,所以作为它子孙的类也都有
这些东西。另外建议你学会看DELPHI的帮助,这些问题在HELP中写得很细
 
多人接受答案了。
 
后退
顶部