AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Präprozessordirektive(conditional compile) Unit-übergreifend
Thema durchsuchen
Ansicht
Themen-Optionen

Präprozessordirektive(conditional compile) Unit-übergreifend

Ein Thema von Andy386 · begonnen am 26. Mai 2008 · letzter Beitrag vom 27. Mai 2008
Antwort Antwort
Andy386

Registriert seit: 26. Mär 2008
55 Beiträge
 
#1

Präprozessordirektive(conditional compile) Unit-übergreifend

  Alt 26. Mai 2008, 10:02
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:
interface
{$DEFINE MICRO}
uses
  Windows,..., unterunit;
unterunit:
Delphi-Quellcode:
implementation
{$IFDEF MICRO}
uses U_microscope;
{$ENDIF}
[edit] zu schnell gedrückt...
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]
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#2

Re: Präprozessordirektive(conditional compile) Unit-übergrei

  Alt 26. Mai 2008, 10:03
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.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Andy386

Registriert seit: 26. Mär 2008
55 Beiträge
 
#3

Re: Präprozessordirektive(conditional compile) Unit-übergrei

  Alt 26. Mai 2008, 10:21
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) ?
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#4

Re: Präprozessordirektive(conditional compile) Unit-übergrei

  Alt 26. Mai 2008, 10:44
Weil Units eben davon nicht betroffen sind. Es sind eigenständige Quellcodes - im Gegensatz zu C++, wo die Quellcodes "kopiert "werden.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Andy386

Registriert seit: 26. Mär 2008
55 Beiträge
 
#5

Re: Präprozessordirektive(conditional compile) Unit-übergrei

  Alt 26. Mai 2008, 13:56
Ok. Ich werd versuchen, dass zu beachten, Danke !
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Präprozessordirektive(conditional compile) Unit-übergrei

  Alt 26. Mai 2008, 14:58
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).
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Andy386

Registriert seit: 26. Mär 2008
55 Beiträge
 
#7

Re: Präprozessordirektive(conditional compile) Unit-übergrei

  Alt 27. Mai 2008, 12:39
alzaimar, du hast natürlich Recht.
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...
  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 23:31 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