Error: Forward declaration not solved

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
helmut25
Beiträge: 2
Registriert: Mi 23. Apr 2025, 15:18

Error: Forward declaration not solved

Beitrag von helmut25 »

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?

Benutzeravatar
theo
Beiträge: 10856
Registriert: Mo 11. Sep 2006, 19:01

Re: Error: Forward declaration not solved

Beitrag von theo »

Schau doch mal wo das genau passiert.
Am Anfang der Meldung steht doch z.B. unit1.pas(18,12)
unit1.pas(18,12) Error: Forward declaration not solved "FindAllFiles(const AnsiString;AnsiString;Boolean):TStringList;"
Wahrscheinlich hast du irgendwo versehentlich eine solche Deklaration stehen.

helmut25
Beiträge: 2
Registriert: Mi 23. Apr 2025, 15:18

Re: Error: Forward declaration not solved

Beitrag von helmut25 »

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. :roll:

Benutzeravatar
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

Beitrag von m.fuchs »

helmut25 hat geschrieben: Do 24. Apr 2025, 15:05 Warum in der Fehlermeldung nur zwei statt drei Parameter angegeben wurden,
ist mir aber schleierhaft.
AnsiString;AnsiString;Boolean sind drei.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Antworten