Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi FindFile-Klasse wird nicht gefunden (https://www.delphipraxis.net/185659-findfile-klasse-wird-nicht-gefunden.html)

juergen 27. Jun 2015 14:55

FindFile-Klasse wird nicht gefunden
 
Hallo zusammen,

ich muss unter Dephi 2007 eine variable Dateisuche umsetzen. Ich habe da schon was eigenes, wo mir aber noch die Auslagerung in einem eigenen Thread fehlt und die Anwendung von Wildcards.
Um nicht das Rad neu zu erfinden, habe ich folgendes gefunden:
http://www.delphiarea.com/products/findfile/

Wenn ich dieses Projekt kompilieren möchte erhalte ich allerdings folgende Fehlermeldung:
Feld MainForm.FindFile besitzt keine entsprechende Komponente. Soll die Deklaration entfernt werden?

So wie ich das sehe, wird die Klasse "FindFile" aufgerufen. Die entsprechende Unit ist unter der Uses-Klausel eingebunden.
Von daher verstehe ich die Fehlermdlung nicht ganz.

Weiß da jemand Rat?
Danke schon mal vorab!

mkinzler 27. Jun 2015 14:58

AW: FindFile-Klasse wird nicht gefunden
 
Es scheint sich um eine Komponente zu handeln. Liegt diese auf Deiner Form?

Bernhard Geyer 27. Jun 2015 15:01

AW: FindFile-Klasse wird nicht gefunden
 
Kommt diese Meldung wirklich beim Compilieren? Wohl eher wenn das entsprechende Formular versucht wird in der IDE zu öffnen.
Das klappt aber nur wenn die Komponente auch in der IDE registriert ist. Fürs Compilieren reicht der Eintrag in der uses-Anweisung.

juergen 27. Jun 2015 15:04

AW: FindFile-Klasse wird nicht gefunden
 
@mkinzler
Ich verwende den Projekt-Download unter dem angegebenen Link.
Auf der Mainform sehe ich keine Komponente.
Ich sehe auch in dem ganzen Projektordner keine Komponente die ich installieren könnte...:?

@Bernhard Geyer
Richtig, die Meldung erscheint wenn die Hauptform in der IDE erzeugt werden soll.

mkinzler 27. Jun 2015 15:11

AW: FindFile-Klasse wird nicht gefunden
 
Zitat:

Ich sehe auch in dem ganzen Projektordner keine Komponente die ich installieren könnte...
Ich schon:
Zitat:

Zitat von FindFile.pas
Delphi-Quellcode:
procedure Register;
begin
  RegisterComponents('Delphi Area', [TFindFile]);
end;


Perlsau 27. Jun 2015 15:23

AW: FindFile-Klasse wird nicht gefunden
 
Zitat:

Zitat von juergen (Beitrag 1306843)
Ich habe da schon was eigenes, wo mir aber noch die Auslagerung in einem eigenen Thread fehlt und die Anwendung von Wildcards.

Diese von diversen Delphi-Treff-Usern entwickelte Komponente ist auch nicht schlecht.

juergen 27. Jun 2015 15:58

AW: FindFile-Klasse wird nicht gefunden
 
@mkinzler,
danke für deine Mühe. So wie ich in der Hilfe gelesen habe, sollte
Delphi-Quellcode:
RegisterComponents('Delphi Area', [TFindFile]);
Die Komponente registrieren und in der Toolpalette anzeigen. Das tuts bei mir aber nicht.
Ich habe in dem Demo-Projekt die Unit "FindFile" mit aufgenommen und die "DELPHIAREA.INC" mit den Ordner kopiert...

Ich weiß leider nicht was ich vergessen habe oder falsch mache damit die Komponente auch richtig registriert wird.

@perlsau
Danke für den Link! Diese Arbeit sieht auch sehr gut/ interessant aus. :thumb:
Allerdings bekomme ich unter Delphi 2007 den selben Fehler wie im ersten Post beschrieben. Ich habe gerade mit Dephi XE probiert, da funktioniert es. :?
Wenn ich mit Delphi 2007 das Projekt öffne erscheint auch schon beim Starten die Meldung, dass die "Klasse TFileSearcher nicht gefunden wurde"???

Etwas ratlose Grüße

DeddyH 27. Jun 2015 16:05

AW: FindFile-Klasse wird nicht gefunden
 
Hast Du Such- bzw. Bibliothekspfad auch entsprechend angepasst/erweitert?

juergen 27. Jun 2015 16:35

AW: FindFile-Klasse wird nicht gefunden
 
Liste der Anhänge anzeigen (Anzahl: 1)
@DeddyH,
Erst einmal großen Dank und meinen Respekt für deine Arbeit die du da geleistet hast! :thumb:

Ich habe anscheinend irgendein Problem mit Delphi 2007.
Wenn ich die Demos mit Delphi XE starte funktioniert alles. Ich brauche hier keine Such- bzw. Bibliothekspfade hinterlegen.

Unter Delphi 2007 habe ich die Sourcen in einen eigenen Ordner gepackt und diesen Ordner hinzugefügt (siehe Bild).
Trotzdem wird mir in Delphi 2007 schon beim Starten der Demo angezeigt, dass er die TSearchFile Klasse nicht findet...:gruebel:

mkinzler 27. Jun 2015 16:39

AW: FindFile-Klasse wird nicht gefunden
 
Bibliothekspfad ist der Pfad, in der die kompillierte Unit (dcu) liegt. Im Suchpad die Quelldatei

Perlsau 27. Jun 2015 16:47

AW: FindFile-Klasse wird nicht gefunden
 
Zitat:

Zitat von mkinzler (Beitrag 1306878)
Bibliothekspfad ist der Pfad, in der die kompillierte Unit (dcu) liegt. Im Suchpad die Quelldatei

Genau :thumb:

@juergen: Schau mal, wohin dein Delphi2007 die DCU-Dateien packt. Eventuell hast du da was voreingestellt. Lösche die Einträge in den Projektoptionen, dann werden die DCU-Dateien im Projektordner gespeichert.

DeddyH 27. Jun 2015 16:48

AW: FindFile-Klasse wird nicht gefunden
 
Wenn man die Komponente nicht ständig oder zumindest öfter braucht, kann man sich eine Installation aber auch sparen. Dann packt man eben, wenn man ganz faul ist, die benötigten Units mit in den Projektordner, erzeugt die Komponente zur Laufzeit und weist ihr alle nötigen Eventhandler zu. Das hat den Vorteil, dass man seine IDE schön schlank hält.

juergen 27. Jun 2015 17:09

AW: FindFile-Klasse wird nicht gefunden
 
@perlsau,
Also, mal ganz von vorn. Ich starte Delphi 2007 ohne ein Projekt geladen zu haben und trage in dem Bibliothekspfad den Pfad der Sourcen ein (in meinem Fall "c:\_Programmierung\installierte_Komponeten\FileSe arch_Delphi_2007\"). Ich habe entgegen meinem vorigen Post die Versionsbezeichnung aus dem Ordnernamen entfernt...
Anfangs gibt es noch keine DCU-Dateien. Ich starte also die Listview-Demo, dabei wird mir immer noch die Fehlermeldung angezeigt, dass die SearchFile Klasse nicht gefunden wird. Ich sage "ignorieren". Dann erzeuge ich das Projekt. Jetzt werden die *.DCU-Dateien erzeugt. Diese DCU-Dateien kopiere ich in den Sourcenordner.
Ich beende alles und starte neu... keine Änderung, die SearchFile-Klasse wird immer noch nicht gefunden.

@DeddyH,
Das war mein erster Weg. Ich habe alle Dateien aus dem Ordner Sourcen in den Ordner ...\Demos\ListViewDemo\... kopiert. Dann die beiden Units "FileSearch" und "DDFileUtils" dem Projekt hinzugefügt. Fehlermeldung bleibt. Bis jetzt hatte das so immer funktioniert. Muss ich dann noch irgenwas anpassen?

Perlsau 27. Jun 2015 18:09

AW: FindFile-Klasse wird nicht gefunden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von juergen (Beitrag 1306885)
Also, mal ganz von vorn. Ich starte Delphi 2007 ohne ein Projekt geladen zu haben und trage in dem Bibliothekspfad den Pfad der Sourcen ein (in meinem Fall "c:\_Programmierung\installierte_Komponeten\FileSe arch_Delphi_2007\"). Ich habe entgegen meinem vorigen Post die Versionsbezeichnung aus dem Ordnernamen entfernt...
Anfangs gibt es noch keine DCU-Dateien. Ich starte also die Listview-Demo, dabei wird mir immer noch die Fehlermeldung angezeigt, dass die SearchFile Klasse nicht gefunden wird.

Offenbar hast du nicht richtig gelesen: Du sollst in den Projektoptionen der Searchfile-Komponente den Pfad eintragen, in dem sich der Quellcode der Komponente befindet. Dies geschieht dadurch, daß du die Einträge in den Projektoptionen löschst. Dann werden die DCU-Dateien beim Neukompilieren immer in diesem Ordner abgelegt. Diesen Pfad trägst du dann ebenfalls in den Delphi-Optionen als Bibliothekspfad ein. Da mußt du nichts hin- und herkopieren, die DCU-Dateien werden immer automatisch genau dort abgelegt. Das gilt auch für dein Projekt ... das natürlich abweichende Projektoptionen haben kann.

Wenn du die Komponente allerdings ohne Installation verwenden willst, kannst du dir das alles sparen, denn dann werden alle DCU-Dateien in dem Ordner abgelegt, den du in deinen Projektoptionen angegeben hast. Wenn dort keine Einträge vorhanden sind, wird in den Quellordner gespeichert (DCU, DCP und Exe).

Ich gehe mal davon aus, daß die Unterschiede zwischen D2009 und D2007 diesbezüglich nicht relevant sind. Andernfalls mußt du jemand fragen, der D2007 hat.

juergen 27. Jun 2015 18:37

AW: FindFile-Klasse wird nicht gefunden
 
Liste der Anhänge anzeigen (Anzahl: 1)
@perlsau,
danke für deine Unterstützung.
In Delphi 2007 sehen die Projektoptionen tatsächlich ziemlich anders aus (siehe Bild).

Wenn es für das Problem einfacher ist: Die Komponente muss nicht installiert werden.
Also habe ich die Dateien aus dem Source Ordner einfach in den Demo-Ordner "ListViewDemo" kopiert. Vorsichtshalber auch noch die vorhandene "ListviewDemo.res" gelöscht, damit meine Standard-Projektoptionen verwendet werden. Dann die beiden Units "FileSearch" und "DDFileUtils.pas" dem Projekt hinzugefügt.
Beim kompilieren des Projektes (F9) erscheint wieder folgende Meldung:
Feld MainForm.FindFile besitzt keine entsprechende Komponente. Soll die Deklaration entfernt werden?

Ich habe dann auch mal die Deklaration entfernt, dann erhalte ich ganz viele Fehler wo der Klassenzugriff nicht mehr möglich ist und ich nicht weiß was ich z.B. vor Searcher.Busy schreiben muss damit der Zugriff funktioniert.

Eigentlich habe ich schon etliche Komponenten eingebunden und komme mir hier jetzt irgendwie ziemlich blöd vor.
Unter Delphi XE funktioniert auch alles problemlos.

DeddyH 27. Jun 2015 18:38

AW: FindFile-Klasse wird nicht gefunden
 
Wie und wo ist MainForm.FindFile denn überhaupt deklariert?

mkinzler 27. Jun 2015 18:57

AW: FindFile-Klasse wird nicht gefunden
 
Ich vermute mal bei den managed members

juergen 27. Jun 2015 19:06

AW: FindFile-Klasse wird nicht gefunden
 
Zitat:

Zitat von DeddyH (Beitrag 1306893)
Wie und wo ist MainForm.FindFile denn überhaupt deklariert?

Jetzt bin ich raus. Ich habe nichts deklariert bzw. im gesamten Projekt auch nichts zu "FindFile" gefunden.
Muss ich da was anpassen?

mkinzler 27. Jun 2015 19:11

AW: FindFile-Klasse wird nicht gefunden
 
Die Fehlermeldung
Zitat:

Feld MainForm.FindFile besitzt keine entsprechende Komponente.
sagt aber etwas anderes.
Schau mal in der Deklaration der Klasse, ob
Delphi-Quellcode:
FindFile: TFindFile;
oberhalb von
Delphi-Quellcode:
private
steht.

juergen 27. Jun 2015 19:21

AW: FindFile-Klasse wird nicht gefunden
 
:oops::oops::oops:
Asche auf mein Haupt, muss ein Kopierfehler gewesen sein!
Die korrekte Fehlermeldung lautet:
Feld frmDemoMain.Searcher besitzt keine entsprechende Komponente. Soll die Deklaration entfernt werden?

mkinzler 27. Jun 2015 19:24

AW: FindFile-Klasse wird nicht gefunden
 
Dann musst Du halt Searcher in einen anderen Bereich verschieben

redox 27. Jun 2015 19:35

AW: FindFile-Klasse wird nicht gefunden
 
[OT] Solange der TE zwischen Dephi 2007 und Dephi XE hin- und herspringt, sehe ich da keine einfache Lösung, ohne ein paar Dateien im Projektordner zu löschen. [/OT]

mkinzler 27. Jun 2015 19:41

AW: FindFile-Klasse wird nicht gefunden
 
Zitat:

Zitat von redox (Beitrag 1306902)
[OT] Solange der TE zwischen Dephi 2007 und Dephi XE hin- und herspringt, sehe ich da keine einfache Lösung, ohne ein paar Dateien im Projektordner zu löschen. [/OT]

Wo steht den, dass er zwischen den beiden Versionen hin- und herspringt?
Die Fehlermeldung wäre zudem dann anderst bzw. es würde die dcu ersetzt ( wenn die Quelldatei gefunden wird)

DeddyH 27. Jun 2015 20:51

AW: FindFile-Klasse wird nicht gefunden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab mir mal die Listview-Demo zur Brust genommen und dahingehend geändert, dass die Komponente erst zur Laufzeit erzeugt wird, eine Installation ist daher nicht nötig.

juergen 27. Jun 2015 21:02

AW: FindFile-Klasse wird nicht gefunden
 
Hallo DeddyH,

so funktioniert es! :-D
Vielen Dank und noch ein schönes Wochenende!:dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:37 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