Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Compiler findet Unit nicht (https://www.delphipraxis.net/153581-compiler-findet-unit-nicht.html)

FriendOfDelphi 9. Aug 2010 16:36

AW: Compiler findet Unit nicht
 
Zitat:

Zitat von himitsu (Beitrag 1040525)
Zitat:

Zitat von FriendOfDelphi (Beitrag 1040497)
eine eigene Unit ... einbinden
Die Unit, bzw. die DCU-Datei befindet sich im selben Verzeichnis ...

- wenn du die .pas hast, dann lösch mal die .dcu
- den Namen hast du auch richtig geschrieben?
- ist die DCU eigentlich mit der selben Delphi-Version erstellt/kompiliert worden?

Also, ich habe folgendes gemacht:
a) die *.dcu meiner Datei gelöscht und die *.pas-Datei dem Projekt hinzugefügt
-> Danach meckert der Compiler nicht mehr darüber, dass er die bisher betroffene Datei nicht findet.
Ist ja auch logisch, da er die *.pas-Datei der Unit jetzt zur Verfügung hat.
Das Problem ist aber nur verschoben:
In dieser Unit werden Units eingebunden, deren *.pas-Dateien ich nicht habe.
Mir stehen lediglich die *.dcu-Dateien zur Verfügung.
Und das hat bei der Erstellung meiner Unit, die ich ursprünglich einbinden wollte, problemlos funktioniert.

Zur Verdeutlichung:
Programm -> Unit A -> Unit B, Unit C

b) Bevor ich Euch hier mit meinen Problemen nerve, habe ich mehrmals verglichen, ob der Unitname richtig geschrieben ist.

c) Die selbst geschriebene Unit ist mit der selben Delphi-Version erstellt/kompiliert worden.

DeddyH 9. Aug 2010 16:47

AW: Compiler findet Unit nicht
 
Dann pack die *.dcu mal mit ins Projektverzeichnis, das sollte klappen.

himitsu 9. Aug 2010 16:59

AW: Compiler findet Unit nicht
 
ob nun .dcu oder .pas ist egal (wenn diese Dateien im selben Verzeichnis liegen, wie die .dpr/.pas, wo sie in der Usesklausel (ohne "in Filename") auftauchen
oder wenn sie in einem der Such-Verzeichnisse liegen, dann nimmt Delphi diese.

Wenn die DCU älter ist, als die PAS (falls Beides gefunden wird), dann wird die DCU neu kompiliert, ansonsten wird die DCU verwendet (es sei denn man sagt, daß alles neu kompiliert werden soll).


ABER: Delphi findet keine DCUs, welche nicht mit der selben Compilerversion erstellt wurden (es sei denn, die PAS liegt bei, dann wird ja neu kompiliert) und selbst wenn Delphi soeine Datei findet, dann ignoriert es diese.

FriendOfDelphi 12. Aug 2010 11:15

AW: Compiler findet Unit nicht
 
Hallo Allerseits!

Ich habe die Lösung des eigentlichen Problems zwar nicht gefunden, aber ich kann beschreiben, wie es funktioniert.

1.) Zunächst einmal werden alle benötigten *.dcu-Dateien (die eigene und die fremden) in das Programmverzeichnis kopiert.
2.) Dann wird ein neues Programm mit der IDE erstellt und mit "Datei\Speichern unter..." in diesem Verzeichnis abgelegt.
3.) Nun das Programm 1x kompilieren, bzw. die *.exe erzeugen (strg + F9).
4.) Jetzt erst die benötigte Unit in die uses-Zeile aufnehmen.
5.) Programm erneut kompilieren und starten.

Dann läufts.
Fragt mich aber nicht warum...

SirThornberry 12. Aug 2010 11:28

AW: Compiler findet Unit nicht
 
Bitte unterlasse es zukünftig innerhalb von 24 Stunden mehrere Beiträge hintereinander zu verfassen ohne das zwischenzeitlich jemand anderes etwas gepostet hat. Das nennt man pushen und ist anderen Forenmitgliedern gegenüber unfair und deshalb innerhalb von 24 Std. nicht erlaubt. Wie bereits erwähnt kannst du deinen Beitrag innerhalb von 24 Stunden jederzeit editieren wenn du etwas hinzufügen willst.

mleyen 12. Aug 2010 11:29

AW: Compiler findet Unit nicht
 
Du kannst auch mehrere User in einer Antwort zitieren, indem du bei deiner Antwort etwas runterscrollst und rechts auch [Zitat] klickst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 Uhr.
Seite 2 von 2     12   

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