Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi suche $OrDef - oder wie löst ihr das Problem (https://www.delphipraxis.net/125148-suche-%24ordef-oder-wie-loest-ihr-das-problem.html)

Cappuccino 1. Dez 2008 15:29


suche $OrDef - oder wie löst ihr das Problem
 
Hallo,

genutzt wird D5, teilweise D6 oder 2007

Das Programm muss für diverse Geräte compiliert werden, die unterschiedliche Features haben.
Mit den Compilerdirektiven ist das nicht sonderlich schön lösbar,
{$ifdef MaschineA} xxxx {$endif}
{$ifdef MaschineB} xxxx {$endif}
{$ifdef MaschineC} xxxx {$endif}
hier müssen nun alle vorhandenen Maschinen eingetragen werden, auch


{$ifdef MaschineA}
{$else}
{$ifdef MaschineB}
{$else}
{$ifdef MaschineC}
{$else}
{$endif}
{$endif}
{$endif}

ist nicht wirklich der Hit



---> schöner wäre

{$ifdef MaschineA} {$OrDef MaschineB} {$OrDef MaschineC}
xxxx
{$else}
xxx
{$endif}

Geht so was - und wenn ja - wie?

Danke + Gruß
Tom

jfheins 1. Dez 2008 15:49

Re: suche $OrDef - oder wie löst ihr das Problem
 
Du könntest dir eine include Datei machen, die ungefähr so aussieht:

{$ifdef MaschineA} {$define AorBorC} {$endif}
{$ifdef MaschineB} {$define AorBorC} {$endif}
{$ifdef MaschineC} {$define AorBorC} {$endif}

{$ifdef MaschineA}
{$ifdef MaschineB}
{$ifdef MaschineC}
{define AandBandC}
{$endif}
{$endif}
{$endif}

Aber sowas
Zitat:

Zitat von Cappuccino
{$ifdef MaschineA} {$OrDef MaschineB} {$OrDef MaschineC}
xxxx
{$else}
xxx
{$endif}

Geht imho nicht ...

nahpets 1. Dez 2008 15:50

Re: suche $OrDef - oder wie löst ihr das Problem
 
Hallo,

ein Versuch:
Code:
{$ifdef MaschineA} {$define IstFuerAlleDa} {$endif} 
// MaschineA kann alles, was MaschineB kann, aber nicht umgekehrt.
// Spart ggfls. separate Behandlung von A und B
{$ifdef MaschineB} {$define IstFuerAlleDa} {$define IstFuerAUndB} {$endif} 
{$ifdef MaschineC} {$define IstFuerAlleDa} {$endif} 

{$ifdef MaschineA} 
xxxx
{$endif} 

{$ifdef MaschineB} 
xxxx
{$endif} 

{$ifdef MaschineC} 
xxxx
{$endif} 

{$ifdef IstFuerAUndB} 
xxxx
{$endif} 

{$ifdef MaschineC} 
xxxx
{$endif} 

{$ifdef IstFuerAlleDa}
xxxx
{$endif}

nicodex 1. Dez 2008 16:24

Re: suche $OrDef - oder wie löst ihr das Problem
 
Erst ab Delphi 6 werden CONDITIONALDEFINES unterstützt:
Delphi-Quellcode:
{$IF
  Defined(MaschineA) or
  Defined(MaschineB) or
  Defined(MaschineC)
}
//...
{$IFEND}
Davor helfen nur die o.g. Alternativen.

Cappuccino 2. Dez 2008 06:47

Re: suche $OrDef - oder wie löst ihr das Problem
 
danke, das mit dem conditional define habe ich gesucht, das passt.

Gruß
Tom


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