Hallo,
ich bin Lazarus-Newbie gerade dabei mich in Lazarus einzuarbeiten.
Zu diesem Zweck will ich ein einfaches Programm schreiben, wo ich
mit einem Dialog-Widget ein Verzeichnis auswähle und mir dann alle
Dateien darin anzeigen lassen will.
Dazu verwende ich das TSelectDirectoryDialog-Widget und die
Funktion FindAllFiles. Letzterer müssen lt. Doku drei Parameter übergeben werden,
aber beim Komplieren kommt die Meldung
"Forward declaration not solved "FindAllFiles(const AnsiString;AnsiString;Boolean=`TRUE`):TStringList;"
wo kurioserweise nur _zwei_ Parameter angegeben werden.
Mein Code sieht so aus:
procedure TForm1.Button2Click(Sender: TObject);
begin
if SelectDirectoryDialog1.execute then
myfiles := FindAllFiles(SelectDirectoryDialog1.FileName, '*.*',false);
try
showmessage(Format('Found %d my files',[myfiles.Count]));
finally
myfiles.Free;
end
end;
----
Was mach ich hier falsch?
Error: Forward declaration not solved
Re: Error: Forward declaration not solved
Schau doch mal wo das genau passiert.
Am Anfang der Meldung steht doch z.B. unit1.pas(18,12)
Am Anfang der Meldung steht doch z.B. unit1.pas(18,12)
Wahrscheinlich hast du irgendwo versehentlich eine solche Deklaration stehen.unit1.pas(18,12) Error: Forward declaration not solved "FindAllFiles(const AnsiString;AnsiString;Boolean):TStringList;"
Re: Error: Forward declaration not solved
Danke für deine Antwort.
Der Fehler war, dass ich unnötigerweise die Funktionsdeklaration von
FindAllFiles oben im type-Abschnitt drin hatte, wo auch die
procedure-Deklarationen sind.
Ich habe das da mal auskommentiert und dann hat es funktioniert.
Warum in der Fehlermeldung nur zwei statt drei Parameter angegeben wurden,
ist mir aber schleierhaft.
Der Fehler war, dass ich unnötigerweise die Funktionsdeklaration von
FindAllFiles oben im type-Abschnitt drin hatte, wo auch die
procedure-Deklarationen sind.
Ich habe das da mal auskommentiert und dann hat es funktioniert.
Warum in der Fehlermeldung nur zwei statt drei Parameter angegeben wurden,
ist mir aber schleierhaft.

- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2805
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Error: Forward declaration not solved
AnsiString;AnsiString;Boolean sind drei.helmut25 hat geschrieben: Do 24. Apr 2025, 15:05 Warum in der Fehlermeldung nur zwei statt drei Parameter angegeben wurden,
ist mir aber schleierhaft.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de