Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Unit kompilieren und für alle Projekte verfügbar machen (https://www.delphipraxis.net/197032-unit-kompilieren-und-fuer-alle-projekte-verfuegbar-machen.html)

Frankieboy82 12. Jul 2018 15:52

Unit kompilieren und für alle Projekte verfügbar machen
 
Hallo,

hab seit langem mal wieder Delphi ausgegraben und mir die Trial-Version von Embarcadero Delphi 10.2 geholt...
Nun habe ich ein altes Projekt, das ich auf die neue Delphiversion portieren will. Leider habe ich eine Zusatzunit nicht gespeichert, weder kompiliert noch als Sourcecode. Habe also die Unit schnell neu geschrieben über "Datei | neu > Unit - Delphi" und sie als *.pas gespeichert.
Jetzt die Fragen:
1. Wie kann ich die Unit kompilieren
("Projekt | Kompilieren" und "Start" im Menü sind greyed out)
2. Wo ist das Verzeichnis, in das ich die Unit kopieren muss, damit ich es über die uses Klausel in ein anderes, beliebiges Projekt einbinden kann?

Sorry für die dummen Fragen, aber ich habe mit Delphi seit 5 Jahren oder so nichts mehr gemacht!
Danke an jeden, der sich herablässt, sie mir trotzdem zu beantworten :)

Viele Grüße,

Frank

Redeemer 12. Jul 2018 15:59

AW: Unit kompilieren und für alle Projekte verfügbar machen
 
Units selbst kann man nicht kompilieren, weil eine Unit keine Buildparameter hat. Man muss sie in einem Projekt (Anwendung oder Package) verwenden, dann wird sie automatisch kompiliert.

Units packt man in den Ordner der Anwendung oder man fügt sie dem Projekt hinzu.
Die sogenannten Suchpfade (so heißt die Einstellung) geben an, aus welchen Ordnern Units automatisch geladen werden.

DCUs sind übrigens an eine Delphiversion gebunden (hierbei zählen 2009 und 2010 als dasselbe), somit hätte dir eine DCU eh nichts gebraucht.

himitsu 12. Jul 2018 16:36

AW: Unit kompilieren und für alle Projekte verfügbar machen
 
Zitat:

Zitat von Redeemer (Beitrag 1407041)
Units selbst kann man nicht kompilieren

Doch, kann man, auch ohne ein Projekt drumrum,
also genau so wie auch ein ganzes Projekt.
Delphi-Quellcode:
dcc32.exe deineunit.pas
(eventuell inkl. zusätzlicher Parameter/Optionen, wie sonst auch)

PAS (Pascal-Unit) -> DCU (Delphi Compiled Unit)


Und ja, die DCUs sind compilerabhängig und funktionieren immer nur mit der selben Compilerversion (gleiche Delphi-Version und teilweise auch mit gleichem Updatestand).

Also die alte DCU wird dir nicht helfen.
Es gab zwar einige Delphi-Decompiler, aber wirklich funktionieren die nicht und selbst wenn, dann kommt da selten eine vollständig funktionierende Unit raus.

Beim Kompilieren eines Programms kann man statt der PAS auch die DCU nehmen (richtige Version vorausgesetzt)
und liegen muß sie entweder im Projektverzeichnis oder in den definierten Suchpfaden.




PS, wegen Trial: https://www.embarcadero.com/de/products/delphi/starter (aber die Starter hat keinen Komandozeilenkompiler ... DCC32 fehlt :stupid:)

hoika 12. Jul 2018 17:19

AW: Unit kompilieren und für alle Projekte verfügbar machen
 
Hallo,
Zitat:

2. Wo ist das Verzeichnis, in das ich die Unit kopieren muss, damit ich es über die uses Klausel in ein anderes, beliebiges Projekt einbinden kann?
Leg einfach ein neues Verzeichnis GlobalUnits (z.B.) an, packe das in die PATH-Umgebungsvariablen mit rein
und dann deine gerade geschriebene Unit dort rein.

Delphi neustarten und alle Projekte finden die Unit.

Frankieboy82 12. Jul 2018 18:39

AW: Unit kompilieren und für alle Projekte verfügbar machen
 
Vielen Dank erstmal für die schnellen und hilfreichen Antworten!

Hab jetzt einfach die *.pas-Unit in meinen Projektordner kopiert und es läuft bestens.
Der Tip mit der Starter-Edition war auch sehr willkommen.

Greetz,

Frank

himitsu 13. Jul 2018 09:47

AW: Unit kompilieren und für alle Projekte verfügbar machen
 
Zitat:

Zitat von hoika (Beitrag 1407056)
packe das in die PATH-Umgebungsvariablen mit rein

Sollen wir dich gleich steinigen oder machst du es selber?

Bitte nicht noch mehr Schrott in dieses eh schon grauenhafte Konstrukt rein.
Dafür gibt es doch im Delphi die eigenen Suchpfade.


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