很糢糊的理解,望各位帮助,急得很! ( 积分: 50 )

  • 主题发起人 主题发起人 zpselect
  • 开始时间 开始时间
Z

zpselect

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手property的定义和使用我很不理解,可否给一些简单通俗的实例?并加以解释说明!我现在对这个东东的定义使用糢糊不清!另外我对递归这个东东也不熟悉,望各位指点一下!我现在给出递归原码:
procedure AddTreeView(ReportTree: TTreeView; const Path: string; ParentNode: TTreeNode);
var
FindHandle: Integer;
Node: TTreeNode;
SearchRec: TSearchRec;//system Function
begin
FindHandle := FindFirst(Path + '*.*', faAnyFile, SearchRec); //在指定的位置查找第一个文件
while FindHandle = 0 do
begin
if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
if (SearchRec.Attr and faDirectory) > 0 then
begin
Node := ReportTree.Items.AddChild(ParentNode, SearchRec.Name);//在该父结点下加一个节点
with Node do //对该结点进行相关操作
begin
Text := SearchRec.Name;
AddTreeView(ReportTree, Path + SearchRec.Name + '/', Node);
end;// 请问这一句 AddTreeView递归是什么意思?
end
else
ReportTree.Items.AddChild(ParentNode, ExtractFileNameString(SearchRec.Name));
FindHandle := FindNext(SearchRec);
end;
FindClose(SearchRec);
end;
另外:if (SearchRec.Attr and faDirectory) > 0 then语句中Attr:integer,faDirectory = $00000010;请问这个判断怎么理解?
 
1.例如你要把整个C盘的树形目录装入TreeView,那么:
AddTreeView(ReportTree, 'C:/', Node);

2. AddTreeView(ReportTree, Path + SearchRec.Name + '/', Node);
SearchRec.Name表示找到的某个目录,例如 WINDOWS,那么
Path + SearchRec.Name + '/' = c:/windows/
意思就是把 "c:/windows/"下的所有子目录也装入TreeView,
这就是第贵!呵呵!

3. if (SearchRec.Attr and faDirectory) > 0 then语句中Attr:integer,
faDirectory $00000010;请问这个判断怎么理解?
SearchRec.Attr一般是:
$01 : 文档!
$02 : 隐藏!
$04: ...
$10: 目录,faDirectory 定义的就是$10,目录啊!
意思是SearchRec.Attr是目录时,就地跪调用把该目录和所有子目录加入
TreeView,另外最好写为:
if ((SearchRec.Attr and faDirectory)=faDirectory) then
最好!
朱好运!呵呵!
 
对我而言,一般写控件时才会用的property,property的属性会在控件的属性标签页中显示出来,可在设计期进行设置。

递归如果你不理解 可以看看数据结构的书,把汉诺塔和阶乘的函数理解透就可以了。
 
可不可以给一些property的属性定义和使用的例子?我们公司写的程序都是通过类的形式来实现的,不是用拖控件的方式来做的!所以说很多地方都用到了property的属性,但是我看了好多这样的使用,可是还是不明白其意!
 
我对Property的理解就是通过设定这个属性能调用类里面的方法,改写类内部的私有变量
Property是类的对外的一个接口,内部就是一个黑盒,你不必关心如何实现,只要通过属性的值的定义,就能调用里面某些方法.
 
我这边有一个property,望各位解释一下:
property:SS:integer read FS1 Write GetSS
FS1:Integer;GetSS:是一个方法
那么我现要得到属性的值请问怎么写?
 
要怎么得到属性的值?
既然已经写了 read FS1了 那么你读取属性的时候就会自动的调FS1的值
 
你的意思是我直接调用SS就可以了,系统会自动取FS1值对吧?
如:Edit1.text:=TClassA.SS 是这样么?
 
是的 就是那个意思
 
好的!谢谢!不过你可不可以给一二个你的实例?
 
學習學習。。。。。。中。。。。:)
 
多人接受答案了。
 
后退
顶部