Autor Beitrag
Passi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Do 22.01.04 16:24 
hallo,

gibt es die möglichkeit in delphi 7 versionsabhängig zu compilieren? also sodass ich ein unter delphi 7 erstelltes projekt auch in z.b. delphi 5 nochmal öffnen und weiter bearbeiten kann, und dann auch kein fehler, wie bisher beim compilieren auftaucht.

Moderiert von user profile iconTino: Titel geändert.
Chatfix
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1583
Erhaltene Danke: 10

Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
BeitragVerfasst: Do 22.01.04 16:56 
Die einzigste Möglichkeit:
Nur Komponenten/Funktionen/Befehle nutzen die in Beiden Versionen vorhanden (und gleich sind)...

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Do 22.01.04 17:08 
Sie müssen noch nicht einmal gleich sein, lediglich die Methoden müssen die gleichen Aufrufarten haben, und die Daten, die in den dfm-Dateien abgelegt werden, müssen demselben Format entsprechen.

BTW: Es gibt keinen Superlativ von "einzig". :wink:

Cu,
Udontknow
Simon Joker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236
Erhaltene Danke: 1



BeitragVerfasst: Do 22.01.04 17:10 
Das geht so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
{$IFDEF VER100}
//Delphi3
..Code...
{$ENDIF}

{$IFDEF VER120}
//Delphi4
..Code...
{$ENDIF}

{$IFDEF VER130}
//Delphi5
..Code...
{$ENDIF}

für die 6 und 7 habe ich gerade nicht die nummern musst du mal googlen. Di Teile heisen: Delphi Version Symbols for Conditional Compilation

Liste mit älteren Compilern:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
Compiler Symbol System Symbol 
Turbo Pascal 4 Ver40 DOS - 
Turbo Pascal 5.0 Ver50 DOS - 
Turbo Pascal 5.5 Ver55 DOS - 
Turbo Pascal 6.0 Ver60 DOS - 
Borland Pascal 7 Ver70 ??? ??? 
Delphi 1.0 Ver80  Windows 16 - 
Delphi 2.0x  Ver90 Windows 32 Win32 
C++ Builder 1 Ver93 Windows 32 Win32 
Delphi 3 Ver100 Windows 32 Win32 
C++ Builder 3 Ver110 Windows 32 Win32 
Delphi 4 Ver120 Windows 32 Win32 
Delphi 5 Ver130 Windows 32 Win32


Und für Delphi 6 VER140
Passi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Do 22.01.04 18:49 
aha aber nunja ich weiß jetzt nicht wirklich was ich genau mit deinen codeschnippseln machen soll :roll:

trotzdem erstmal danke
Simon Joker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 236
Erhaltene Danke: 1



BeitragVerfasst: Fr 23.01.04 09:43 
Hi Passi

Die Codeschnippsel erwirken eine Bedingte Compilierung abhängig von der Compilerversion!

Der Compilerschalter {$IFDEF name) prüft die in Name benannte Bedingung und bindet den Code bis {$ENDIF} nur ein, wenn diese Wahr ist.
Die Symbole VER140 usw. geben die Compilerversion an und sind vordefiniert. Das Ergebniss von einem solchen Konstrukt:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
if DummyBool then
  {$IFDEF VER100} TuWasInD3; {$ENDIF} 
  {$IFDEF VER120} TuWasInD4; {$ENDIF} 
  {$IFDEF VER130} TuWasInD5; {$ENDIF}

wäre, daß je nach Delphi-Version eine entsprechend angepasste Funktion eingebunden wird.

Ein anderes Beispiel. In Abhängigkeit der Delphi-Version wird entweder die CLX oder die VCL ein gebunden.,
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
uses
      {$IFDEF COMPILER6_UP}
      RtlConsts,         // VisualCLX-package compatible (part of rtlxx.bpl)
      {$ELSE}
      Consts,            // not VisualCLX-package compatible (part of vclxx.bpl)
      {$ENDIF COMPILER6_UP}
      ...


Oder willst du nur beim Debuggen zusätzliche Fehlermeldungen?
ausblenden Delphi-Quelltext
1:
2:
3:
{$IFDEF Debug}
ShowMessage('Debugging');
{$ENDIF}


Oder OS spezifische Funktionen und dennoch Linux ohne ständige anpassung des Codes?
ausblenden Delphi-Quelltext
1:
2:
{$IFDEF WIN32} ... Code für Windows ... {$ENDIF}
{$IFDEF LINUX} ... Code für Linux ... {$ENDIF}


Ich denke das Prinzip ist klar, oder?

Cu Simon