Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi vcl40, vcl: Unterscheidung per Compilerschalter möglich? (https://www.delphipraxis.net/114585-vcl40-vcl-unterscheidung-per-compilerschalter-moeglich.html)

Nogge 27. Mai 2008 21:38


vcl40, vcl: Unterscheidung per Compilerschalter möglich?
 
Hallo Community,
ich habe gerade ein altes Package geschrieben in Delphi 4 gefunden und habe es übersetzt. Allerdings will ich ungern für jede Delphiversion eine neue dpr-Datei erstellen, sondern vielmehr per Compilerschalter in der Art {$IFDEF D5UP ...} (mit JEDI.inc) unterscheiden. Allerdings funktionierte dies nicht in der requires-Klausel. Kann mir jmd sagen, ob dies überhaupt möglich ist und wenn ja, wie?

THX Nogge

mashutu 27. Mai 2008 21:57

Re: vcl40, vcl: Unterscheidung per Compilerschalter möglich?
 
Zitat:

Zitat von Nogge
Hallo Community,
ich habe gerade ein altes Package geschrieben in Delphi 4 gefunden und habe es übersetzt. Allerdings will ich ungern für jede Delphiversion eine neue dpr-Datei erstellen, sondern vielmehr per Compilerschalter in der Art {$IFDEF D5UP ...} (mit JEDI.inc) unterscheiden. Allerdings funktionierte dies nicht in der requires-Klausel. Kann mir jmd sagen, ob dies überhaupt möglich ist und wenn ja, wie?

THX Nogge

Mir ist jetzt nicht gnz klar, worauf Du hinaus willst, aber ich habe fuer unterschiedliche Versionen des Compilers immer folgende Statements benutzt:
===========cut---------------
{$ifdef Ver180}
{$DEFINE D2006}
{$Endif}
===========cut---------------
Delphi 2006 hatte also die Version 180. Die Versionen sind 'durchgezaehlt', seit "Turbopascal 1" - allerdings multipliziert mit 10.
Ver55
war TP 5.5 und TP fuer Windows war Ver80 Danach folgten die Delphi-Versionen wobei ich nicht mit allen gearbeitet habe und auf die schnelle keine komplette Darstellung liefern kann. Das meiste erfolgte in Zehnerschritten und sollte sich leicht herausfinden lassen, wenn man die fraglichen Compilerversionen zur Hand hat.

Nogge 28. Mai 2008 05:48

Re: vcl40, vcl: Unterscheidung per Compilerschalter möglich?
 
Delphi-Quellcode:
package myPackage_D4;
[...]
{$ALIGN ON}
[...]
requires
  vcl40;

+

package myPackage_D7;
[...]
{$ALIGN 8}
[...]
requires
  vcl;

=

package myPackage;
[...]
{$IFDEF DELPHI5_UP}
  {$ALIGN 8}
{$ELSE}
  {$ALIGN ON}
{$ENDIF}
[...]
requires
{$IFDEF DELPHI5_UP}
  vcl;
{$ELSE}
  vcl40;
{$ENDIF}
Das untere will ich erreichen, was bisher aber immer fehlschlug. Anscheinend darf man keine Compilerschalter innerhalb der requires-Klausel benutzen. Stimmt das wirklich oder mache ich etwas falsch?

Nogge 6. Sep 2008 14:29

Re: vcl40, vcl: Unterscheidung per Compilerschalter möglich?
 
*push*

jbg 6. Sep 2008 14:53

Re: vcl40, vcl: Unterscheidung per Compilerschalter möglich?
 
Zitat:

Zitat von Nogge
Anscheinend darf man keine Compilerschalter innerhalb der requires-Klausel benutzen.

Der Compiler hat damit kein Problem. Die IDE aber schon. Denn sie generiert die .dpk (und auch .dpr) Datei ständig neu. Und dabei gehen die IFDEFs nicht nur verloren, sondern deren Inhalt wird je nach Delphi Version sogar entfernt.

Bernhard Geyer 6. Sep 2008 16:58

Re: vcl40, vcl: Unterscheidung per Compilerschalter möglich?
 
Jeder Komponentenhersteller liefert für jede IDE passende DPK-Dateien. Also solltest du das auch so machen das es höchstwahrscheinlich nicht anders geht.

Nogge 6. Sep 2008 18:59

Re: vcl40, vcl: Unterscheidung per Compilerschalter möglich?
 
Mh ok. Danke für die Erklärung.


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