Forum: Object-Pascal / Delphi-Language
by Bjoerk,
13. Sep 2011
Mann, war das jetzt ein Akt. Knoten, welche man anklickt und dann das Plus verschwindet, mag ich ja gar nicht. So finde ich’s schöner und läuft auch ziemlich flott soweit:
function GetTreeNodePath(const ANode: TTreeNode): string;
var
I: integer;
begin
if Assigned(ANode) then
if Assigned(ANode.Parent) then
GetTreeNodePath:= GetTreeNodePath(ANode.Parent)+'\'+ANode.Text
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
13. Sep 2011
Das hat nicht funktioniert, zeigt die Dirs doppelt an.
Am Anfang meiner procedure kann man N:= Start setzen, dann ist N nicht mehr undefiniert.
Edit, nein umgekehrt, zeigt nur ein Dir an.
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
13. Sep 2011
Ja, das wundert mich auch, hab' die Compilermelung auch erhalten. Könnte man Nil setzen und das abfragen oder GetTreeNodePath verwenden. Das var soll natürlich ein const sein. Ich wollte verhindern, daß Delphi eine Kopie anlegt. Mit const, var, out und ohne habe ich bei Pointern immer noch Schwierigkeiten, (bei dynamischen Arrays ist es nochmal ein wenig anders, hab ich festgestellt) ob wohl du,...
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
13. Sep 2011
So geht's eigentlich ganz gut, nur bisschen doof, daß dann erst mal nicht angezeigt wird, ob der Ordner Unterordner hat.
procedure GetNextLevelNodeDirs(const ADirectory: String; var ATree: TTreeView; const Start: TTreeNode);
var
S: TSearchRec;
R: integer;
N: TTreeNode;
begin
R:= FindFirst(IncludeTrailingPathDelimiter(ADirectory)+'*.*', faDirectory, S);
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
13. Sep 2011
Ich hab' mir die ShellCtrls jetzt auch mal näher angesehen. Die laden immer nur den nächsten Level in das TreeView rein (keine Rekursion). Deshalb sind diese (scheinbar) schneller, liegt weniger an findfirst und Co.. ShellTreeView1.Items.Expand(true) dauert deshalb auch sehr lange (lädt dann die fehlenden Items nach).
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
12. Sep 2011
Wie machen es denn die ShellCtrls ?
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
12. Sep 2011
Is the same.
function FindMatchingFile(var F: TSearchRec): Integer;
var
LocalFileTime: TFileTime;
begin
with F do
begin
while FindData.dwFileAttributes and ExcludeAttr <> 0 do
Forum: Object-Pascal / Delphi-Language
by Bjoerk,
12. Sep 2011
Kennt jemand eine schnellere TSearchRec.Findfirst, findnext Alternative ?