![]() |
Delphi-Version: 10 Seattle
Prozedur in einer Prozedur
ich steh' gerade mal wieder auf dem Schlauch.
Es geht um das erste Code-Beispiel in diesem Link: ![]() Hier sind zwei Prozeduren "verkapselt". Irgendwie schluckt das mein Delphi nicht so, es erkennt die Parameter von "GetFilesInDirectory" nicht. |
AW: Prozedur in einer Prozedur
Genaue Fehlermeldung?
|
AW: Prozedur in einer Prozedur
Die Forensoftware hat wohl die "<" und ">" verschluckt, so wird es auch nicht funktionieren. Ersetz mal die beiden Zeilen
Zitat:
Delphi-Quellcode:
Geht es dann?
until FindNext(SR) <> 0;
|
AW: Prozedur in einer Prozedur
Was sagt dein Delphi denn?
Der Quelltext von der Seite lässt sich so nicht kompilieren. Da fehlen z.T. Operatoren die noch ergänzt werden müssen. Danach läuft es bei mir (Delphi 7) |
AW: Prozedur in einer Prozedur
Zitat:
Delphi-Quellcode:
Fehlermeldungen gibt es bei der zweiten Prozedur folgende:
procedure TVersionNumberViewer.GetFilesInDirectory(Directory: string; const Mask: string;List: TStrings;WithSubDirs, ClearList: Boolean);
procedure TVersionNumberViewer.ScanDir(const Directory: string); var SR: TSearchRec; begin if FindFirst(Directory + Mask, faAnyFile and not faDirectory, SR) = 0 then try repeat List.Add(Directory + SR.Name) until FindNext(SR) = 0; finally FindClose(SR); end; if WithSubDirs then begin if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then try repeat if ((SR.attr and faDirectory) = faDirectory) and (SR.Name = '.') and (SR.Name = '..') then ScanDir(Directory + SR.Name + ''); until FindNext(SR) = 0; finally FindClose(SR); end; end; end; begin List.BeginUpdate; try if ClearList then List.Clear; if Directory = '' then Exit; if Directory[Length(Directory)] = '' then Directory := Directory + ''; ScanDir(Directory); finally List.EndUpdate; end; end; ';' erwartet, aber '.' gefunden '=' erwartet, aber ')' gefunden Außerdem erkennt er die Parameter der ersten Prozedur im Code nicht. Er erkennt "List", "Mask" und "WithSubDirs" nicht. |
AW: Prozedur in einer Prozedur
Zitat:
|
AW: Prozedur in einer Prozedur
In der inneren Prozedur muss der Klassenname aus dem Namen:
Delphi-Quellcode:
procedure TVersionNumberViewer.GetFilesInDirectory(Directory: string; const Mask: string;List: TStrings;WithSubDirs, ClearList: Boolean);
procedure ScanDir(const Directory: string); ... |
AW: Prozedur in einer Prozedur
Zitat:
|
AW: Prozedur in einer Prozedur
Argh..... der komplette Code:
Delphi-Quellcode:
procedure TVersionNumberViewer.GetFilesInDirectory(Directory: string; const Mask: string;List: TStrings;WithSubDirs, ClearList: Boolean);
procedure ScanDir(const Directory: string); var SR: TSearchRec; begin if FindFirst(Directory + Mask, faAnyFile and not faDirectory, SR) = 0 then try repeat List.Add(Directory + SR.Name) until FindNext(SR) = 0; finally FindClose(SR); end; if WithSubDirs then begin if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then try repeat if ((SR.attr and faDirectory) = faDirectory) and (SR.Name = '.') and (SR.Name = '..') then ScanDir(Directory + SR.Name + ''); until FindNext(SR) = 0; finally FindClose(SR); end; end; end; begin List.BeginUpdate; try if ClearList then List.Clear; if Directory = '' then Exit; if Directory[Length(Directory)] = '' then Directory := Directory + ''; ScanDir(Directory); finally List.EndUpdate; end; end; |
AW: Prozedur in einer Prozedur
Vielen Dank! Das war mal wieder einfacher als gedacht, sorry :lol:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz