Hi,<br>schreib' grad' ne' Komponente unter D6. Soll aber auch für D5 funktionieren. Gibt allerdings immer'n bischen Probleme, zB. wegen der Teilung in rtl und vcl usw...<br>Ich hatte gedacht das man über Compilerdirektiven was reißen kann ( {$IF ...} ), allerdings weiß ich nicht wie man da die D-Version abfragen sollte?<P>Wäre nett wenn mir da einer mal was helfen könnte... oder noch besser eine Alternative kennt.<P>Tschüss, Euer Adonis
Announcement
Collapse
No announcement yet.
Welche Delphi Version??
Collapse
X
-
Du definierst etwas in der Art:
// Delphi 5 hat VER130
{$IFDEF VER130}
{$DEFINE DELPHI5_AND_UP}
{$ENDIF}
// Delphi 6 hat VER140
{$IFDEF VER140}
{$DEFINE DELPHI5_AND_UP}
{$DEFINE DELPHI6_AND_UP}
{$ENDIF}
für die Uses kannst Du dann folgendes verwenden (und sollte auch mit > D6 funktionieren), wenn Du obiges Define mit der D7/8...-Version ergänzt
uses ...
{$IFDEF DELPHI6_AND_UP}
RTL, ...
{$ELSE}
Delphi5-Units
{$ENDIF
-
Hallo,<br>
Ich arbeite bisher mit Delphi 5. Nun möchte meine Komponenten auch unter Delphi (6) 7 nutzen. Hierzu möchte ich den Abschnitt <b>requires</b> so anpassen, dass ich Ihn für jede meiner Versionen nutzen kann. Leider funktioniert hier die bedingte Compilierung nicht. Der Eintrag wurde geänder in:<p>
<pre>
{$IFDEF VER130}
//Delphi 5
requires
vcl50,
Vclx50,
Vcldb50,
Vclbde50;
{$ELSE}
// nicht Delphi5 => Delphi 6, 7 ...
requires
vcl,
vclx,
vcldb,
bdertl,
designide;
{$ENDIF}
<p></pre>
Wird anschließend bei dem Package die Projekt-Optionen geändert und gespeichert, fehlen anschließend die Compiler-Bedingungen. M.a.W der Quelltext sieht dann wie folgt aus;<p>
<pre>
requires
vcl50,
Vclx50,
Vcldb50,
Vclbde50;
requires
vcl,
vclx,
vcldb,
bdertl,
designide;
{$ENDIF}</pre>
Was kann man das Problem lösen?<p>
MFG Uw
Comment
-
Besorg dir doch die Jedi Code Library (http://jcl.sourceforge.net oder als Teil der JVCL http://jvcl.sourceforge.net).<br>
Die darin enthaltene Datei JEDI.INC enthaelt alle Definitionen die du brauchst.<br>
Mach einfach ein Delphi 5 Package. Delphi 6 und 7 sollten das einfach umformen koennen
Comment
-
@Uwe: Delphi hat mit bedingter Compilierung keine Probleme. Aber zum Beispiel der Projektquelltext (und offensichtlich Package auch) reagiert recht allergisch auf bedingte Compiler-Anweisungen. Delphi muss den Quelltext selbst beieinflussen und scheitert einfach an dieser Hürde. In dem Falle musst Du zuvor halt den Quelltext sichern und nachher wiederherstellen. Die Tipps von Robert und Hagen sind aber vermutlich eh der bessere Weg.<p>
Schöne Grüße, Mario NoacSchöne Grüße, Mario
Comment
-
Hallo Mario,<p>
Danke, für Deinen Beitrag. Es ist in der Tat so, dass ich im Übergang von Delphi 5 nach höher einen einfachen Weg für die Zurücksetzung der Änderung über alle Projekte (ca. 100) suche. Alle Projekte werden über dcc32 in einer Batch compiliert. Erst durch eingehende Tests der Qualitätssicherung wird die erfolgreiche Umstellung festgestellt. Solange muß die Zurücksetzung gewährleistet bleiben.<p>
Die bedingte Compilierung funktioniert auch, nur dürfen die Projektoptionen nicht mehr geändert werden! Denn anschließend ist der Quelltext zerschossen.<p>
MFG Uw
Comment
Comment