AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TSearchRec: Merkwürdiger Syntaxfehler bei FindClose
Thema durchsuchen
Ansicht
Themen-Optionen

TSearchRec: Merkwürdiger Syntaxfehler bei FindClose

Ein Thema von Drop Table · begonnen am 8. Jul 2008 · letzter Beitrag vom 8. Jul 2008
Antwort Antwort
Drop Table

Registriert seit: 16. Aug 2006
Ort: Wedel
26 Beiträge
 
Turbo Delphi für Win32
 
#1

TSearchRec: Merkwürdiger Syntaxfehler bei FindClose

  Alt 8. Jul 2008, 10:33
Moin,

wollte gerade eine kleine Routine schreiben, und erhalte beim Compilieren überraschender Weise beim FindClose einen [Pascal Fehler] dmTTQVUnit.pas(427): E2010 Inkompatible Typen: 'Cardinal' und 'TSearchRec'

Delphi-Quellcode:
function TdmTTQV.GetAndRunUserSQL : Boolean;
var
  srSQL : TSearchRec;
  FL : TStringList;
// s : string;
begin
  FL := TStringList.Create;
  FL.Sorted := true;
  try
    if FindFirst(GetWorkDir+'\*.sql', 0, srSQL) = 0 then
      begin
        if LowerCase(srSQL.Name) <> 'generated.sqlthen
           FL.Add(srSQL.Name);
        while FindNext(srSQL) = 0 do
          if LowerCase(srSQL.Name) <> 'generated.sqlthen
             FL.Add(srSQL.Name);
      end;
  finally
    FindClose(srSQL);
    FL.Free;
  end;
end;
Ich verwende die Turbo Edition 2006/Version 10.0.2558.35231
Könnt ihr euch auf den Fehler einen Reim machen?

Andreas
Gruß
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von littleDave
littleDave

Registriert seit: 27. Apr 2006
Ort: München
556 Beiträge
 
Delphi 7 Professional
 
#2

Re: TSearchRec: Merkwürdiger Syntaxfehler bei FindClose

  Alt 8. Jul 2008, 10:35
Hilft vielleicht das hier
SysUtils.FindClose(srSQL); ?
Jabber: littleDave@jabber.org
in case of 1 is 0 do external raise while in public class of object array else repeat until 1 is 0
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: TSearchRec: Merkwürdiger Syntaxfehler bei FindClose

  Alt 8. Jul 2008, 10:44
Moin Andreas,

noch eine kleine Erklärung zum Posting von littelDave:
Es gibt einmal das FindClose, das zu FindFirst gehört, und den Parametertyp TSearchRec hat, und einmal das, was zu FindFindFile gehört, und ein Handle (Cardinal) als Parameter erwartet.
Die ersten beiden stammen aus der Unit SysUtils, und kapseln die letzteren, bei denen es sich um Funktionen der Windows-API handelt, die sich in der Unit Windows befinden.

Lösen lässt sich das Problem auf zwei Wegen:
  1. So wie littleDave es beschrieben hat, indem man die Unit mit angibt aus der die Funktion genutzt werden soll.
  2. Indem man in uses die Reihenfolge der Units Windows und SysUtils vertauscht, damit der Compiler die andere Funktion zuerst findet.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Drop Table

Registriert seit: 16. Aug 2006
Ort: Wedel
26 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: TSearchRec: Merkwürdiger Syntaxfehler bei FindClose

  Alt 8. Jul 2008, 10:47
Zitat von littleDave:
Hilft vielleicht das hier
SysUtils.FindClose(srSQL);
Es hilft, Vielen Dank! SysUtils ist zwar im Interface Abschnitt deklariert. Aber merkwürdig es es schon oder?
Gruß
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: TSearchRec: Merkwürdiger Syntaxfehler bei FindClose

  Alt 8. Jul 2008, 10:50
Zitat von Christian Seehase:
was zu FindFindFile gehört
Die Windows API-Funktion heißt FindFirstFile.

Endlich kann ich den Christian auch mal verbessern.


Zitat von Drop Table:
Es hilft, Vielen Dank! SysUtils ist zwar im Interface Abschnitt deklariert. Aber merkwürdig es es schon oder?
Nein, ist es nicht, da die Unit Windows wohl auch eingebunden wird, in der das FindClose für die API-Funktion deklariert ist. Jetzt weiß ich allerdings nicht, ob er das erste oder letzte Vorkommen nimmt, welches er in den eingebundenen Units nimmt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: TSearchRec: Merkwürdiger Syntaxfehler bei FindClose

  Alt 8. Jul 2008, 11:04
Zitat von Luckie:
Die Windows API-Funktion heißt FindFirstFile.

Endlich kann ich den Christian auch mal verbessern.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Drop Table

Registriert seit: 16. Aug 2006
Ort: Wedel
26 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: TSearchRec: Merkwürdiger Syntaxfehler bei FindClose

  Alt 8. Jul 2008, 11:10
Zitat von Christian Seehase:
noch eine kleine Erklärung zum Posting von littelDave ...
Ihr seid Klasse! Darauf wäre ich wohl nicht gekommen. Da ich das Projekt ursprünglich aus D5 portiert habe, sind es wohl alte Tretminen. Muss bei Gelegenheit mal prüfen, ob unter D10 auch in der Reihenfolge SysUtils, Windows ... bei Verwendung eines Datenmoduls gesetzt wird.
Gruß
Andreas
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: TSearchRec: Merkwürdiger Syntaxfehler bei FindClose

  Alt 8. Jul 2008, 11:19
Moin Andreas,

genau das von Dir geschilderte Problem hatte ich früher auch mal, allerdings war es da noch nichts mit Internet bzw. Foren, und ich habe eine ganze Weile gebraucht, bis ich die Ursache gefunden hatte
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Drop Table

Registriert seit: 16. Aug 2006
Ort: Wedel
26 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: TSearchRec: Merkwürdiger Syntaxfehler bei FindClose

  Alt 8. Jul 2008, 11:31
Zitat von Christian Seehase:
genau das von Dir geschilderte Problem hatte ich früher auch mal, allerdings war es da noch nichts mit Internet bzw. Foren, und ich habe eine ganze Weile gebraucht, bis ich die Ursache gefunden hatte
Allerdings, das ist heute noch so im (IBM)Mainframe Bereich, da vermisse ich auch zuweilen ein so nettes Forum, wie dieses hier, wo man in Sekunden, wie bei diesem Beispiel, kompetente Anworten erhält.
Gruß
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz