FindFirst / FindNext / FindClose ?

Habe ein Programm zum Laden aller Dateien eines Verzeichnisses mit den FindFirst / FindNext / FindClose -Befehlen geschrieben.
Problem:
Beim Compilieren bricht er in der Zeile mit FindClose unter der Fehlermeldung:

[Fehler] UNIT1.PAS(112): Inkompatible Typen: ‚Cardinal‘ und ‚TSearchRec‘

ab.

Ich habe die Programmsquenz als Beispiel mitgeliefert:

var
SearchRec: TSearchRec;

FindFirst(‚C:\EB-Vidar\In-Bilder*.CRT‘, faAnyFile, SearchRec);
Memo1.Lines.Add(SearchRec.Name);
BildHandeln;
while (FindNext(SearchRec)=0) do
begin
Memo1.Lines.Add(SearchRec.Name);
BildHandeln;
end;
FindClose(SearchRec);

Habe ich irgend einen Fehler gemacht, weil der Compiler bei FindClose(SearchRec) abbricht.

Für einen Dank bin ich dankbar

Dr. Eyck Blank

Hallo Herr Doktor,

Habe ich irgend einen Fehler gemacht, weil der Compiler bei
FindClose(SearchRec) abbricht.

es gibt zwei Prozeduren mit dem gleichen Namen „FindClose“; eine wohnhaft in der Unit „Windows“ und eine in der Unit „SysUtils“. Die Prozedur, die mit einem „TSearchRec“-Record als Parameter arbeitet, ist die aus „SysUtils“. Schreiben Sie also in der letzten Zeile ihres Codes „SysUtils.FindClose(…)“ statt nur „FindClose(…)“ – dadurch zwingen Sie den Compiler, die gewünschte Prozedur aus „SysUtils“ zu nehmen (alternativ können Sie „Windows“ aus der USES-Liste der entprechenden Unit entfernen, aber das geht natürlich nur, wenn sonst keine Funktionen aus der Unit „Windows“ aufgerufen werden sollen).

Übrigens: Wenn Ihr Posting ein Codestück enthält, ist es empfehlenswert, dieses in das „pre“-Tag einzuschließen, denn dann erscheint der Text in „TeleType“-Schrift und vor allem bleiben die Einrückungen am Zeilenanfang enthalten. Der Code wird dadurch viel leichter zu lesen.

Mit freundlichem Gruß
Martin