![]() |
Präprozessordirektive(conditional compile) Unit-übergreifend
Hallo,
ich würde sehr gerne eine vorhandene (Unter-)Unit in ein Projekt einbinden, allerdings brauche ich in dieser Unit Zugriff auf mein main-form. Dennoch soll die Unit auch noch in dem alten Projekt funktionieren. Daher würde ich gerne über Präproessordirektiven die Complierung so steuern, dass z.B. nur beim Verwenden im neuen Projekt auch die neue, benötigte Unit eingebunden wird. Hier das Konzept: Hauptunit (U_microscope):
Delphi-Quellcode:
unterunit:
interface
{$DEFINE MICRO} uses Windows,..., unterunit;
Delphi-Quellcode:
[edit] zu schnell gedrückt...
implementation
{$IFDEF MICRO} uses U_microscope; {$ENDIF} Das Ganze geht leider so nicht, delphi ist scheinbar der Meinung, dass MIRCO nicht definiert ist. Gibt es einen Weg, den Wert global zu defineren ? Oder hilft nur die ganze Unit zu kopieren ?[/edit] |
Re: Präprozessordirektive(conditional compile) Unit-übergrei
Entweder erstellst du eine include-Datei und bindest diese überall ein, wo notwendig - sie nethält die Direktiven. Oder du verwendest die Projektoptionen. Dort kann man auch Bedinungen einsetzen.
|
Re: Präprozessordirektive(conditional compile) Unit-übergrei
Ah, danke für den Tipp mit den Projektoptionen !
Jetzt funzt alles wie gewünscht ! Aber warum erkennt Delphi meine Codedirektive nicht an (auch wenn sie als zweite Zeile in der Projektdatei steht) ? |
Re: Präprozessordirektive(conditional compile) Unit-übergrei
Weil Units eben davon nicht betroffen sind. Es sind eigenständige Quellcodes - im Gegensatz zu C++, wo die Quellcodes "kopiert "werden.
|
Re: Präprozessordirektive(conditional compile) Unit-übergrei
Ok. Ich werd versuchen, dass zu beachten, Danke !
|
Re: Präprozessordirektive(conditional compile) Unit-übergrei
Wenn Du in Deiner Unit auf die MainForm zugreifst, verliert diese Unit ihre Unabhängigkeit und wird wohl kaum noch für andere Projekte zu gebrauchen sein. Realisiere die Funktionalität lieber über ein Event (Callback).
|
Re: Präprozessordirektive(conditional compile) Unit-übergrei
alzaimar, du hast natürlich Recht. :thumb:
Ich habe nur leider nicht ganz so viel Zeit, unscheinbare Änderungen zu machen, deswegen hab ich mich für Präprozessdirektiven entschieden... Ist hässlich, anfällig und unsauber... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 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