Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Gibt es äquivalentes vom C(++) #define für Delphi? (https://www.delphipraxis.net/27296-gibt-es-aequivalentes-vom-c-define-fuer-delphi.html)

knödel 7. Aug 2004 12:58


Gibt es äquivalentes vom C(++) #define für Delphi?
 
Wie in meiner Titelschrift erwähnt, suche ich das #define von C/C++ bei Delphi, sofern es das dort gibt.

Für die, die #define/C nicht kennen, ein Beispiel:
Code:
#include <iostream.h>

#define Version 1.0

int main(void)
{
   cout << "Version: " << Version;
}
Es ist mit const (gibt es ja in beiden Sprachen) vergleichbar, aber mit einem gewissen, wichtigen Unterschied.
Mit #define erstellte Werte werden VOR dem Kompilieren in den QuellCode eingesetzt, als ob sie dort stehen würden. Daher kann ich dafür auch z.B. Variablen einsetzen.

Gibt es so etwas auch unter Delphi? Konnte weder in der Hilfe, noch im Forum dazu etwas finden. :|

CalganX 7. Aug 2004 13:14

Re: Gibt es äquivalentes vom C(++) #define für Delphi?
 
Hi,
es gibt da zwei Möglichkeiten: einmal Konstanten. Das ist wohl das eheste, was du suchst.

Zum Anderen Compilerschalter:
Delphi-Quellcode:
{$DEFINE something}
// ...
{$IFDEF something}
  DoSomething();
{$ENDIF}
Chris

dizzy 7. Aug 2004 14:01

Re: Gibt es äquivalentes vom C(++) #define für Delphi?
 
Das #define selber, mit genau der Funktion ist Teil des Präprozessors von C, und Delphi kennt so etwas überhaupt nicht. Es gibt bisher auch noch keine Erweiterungen die das erledigen könnten.
Du wirst also mit Konstanten/Variablen Vorlieb nehmen müssen ;)

(Compilerschalter sind in manchen Fällen geeignet um ein Preprocessing ansatzweise zu ersetzen, aber in diesem Fall eher weniger.)

NicoDE 7. Aug 2004 14:04

Re: Gibt es äquivalentes vom C(++) #define für Delphi?
 
Zitat:

Zitat von knödel
Mit #define erstellte Werte werden VOR dem Kompilieren in den QuellCode eingesetzt, als ob sie dort stehen würden.

Delphi hat keinen integrierten Präprozessor.
Du müßtest also etweder auf eine Lösung dritter zurückgreifen, oder die Funktionalität in Funktionen kapseln (soweit wie das jeweils möglich ist).

ps: war die beschittene VC-Beta auf einer Zeitschriften-CD, oder warum gibt'splötzlich so viele C++-Fragen...

Robert Marquardt 7. Aug 2004 15:19

Re: Gibt es äquivalentes vom C(++) #define für Delphi?
 
Da der C-Präprozessor unabhaengig ist, kann man ihn auch für Delphi verwenden.

dizzy 7. Aug 2004 15:32

Re: Gibt es äquivalentes vom C(++) #define für Delphi?
 
Aber mach das mal der IDE klar ;)
Dann müsste man vor jedem Kompilieren speichern, der Präprozessor von Hand drüber jagen, das Ergebnis wiederum seperat speichern, und das dann Delphi zuführen.
Wirkliche "usability" ist das leider nicht...

(oder gibt's da was, was ich noch net kenne? :gruebel:)

knödel 7. Aug 2004 15:32

Re: Gibt es äquivalentes vom C(++) #define für Delphi?
 
Danke für eure Hinweise! :)

Zitat:

Zitat von NicoDE
ps: war die beschittene VC-Beta auf einer Zeitschriften-CD, oder warum gibt'splötzlich so viele C++-Fragen...

Öhm, nicht das ich wüsste, bin seit Jahren schon bei C/C++.


Zitat:

Zitat von Robert Marquardt
Da der C-Präprozessor unabhaengig ist, kann man ihn auch für Delphi verwenden.

Hmm, aber da müsste ich extra was rumbasteln, wäre mir zu aufwendig. :zwinker:


Ich werd's dann halt anders lösen, auch wenn teils etwas umständlicher.

NicoDE 7. Aug 2004 15:37

Re: Gibt es äquivalentes vom C(++) #define für Delphi?
 
Zitat:

Zitat von knödel
Öhm, nicht das ich wüsste, bin seit Jahren schon bei C/C++.

Meine rhetorische Frage bezog sich eher auf die anderen Beiträge von heute Nacht bzw. heute Morgen :)

Zitat:

Zitat von dizzy
(oder gibt's da was, was ich noch net kenne? :gruebel:)

Man könnte (wird es sicher bereits geben) einen Experten schreiben, der einem diese Arbeit abnimmt.

Insider2004 7. Aug 2004 16:40

Re: Gibt es äquivalentes vom C(++) #define für Delphi?
 
Templates sollen mit Delphi 10 (.Net 2.0) kommen... :bounce2:

NicoDE 7. Aug 2004 16:46

Re: Gibt es äquivalentes vom C(++) #define für Delphi?
 
Zitat:

Zitat von Insider2004
Templates sollen mit Delphi 10 (.Net 2.0) kommen...

Nunja, ich denke es geht hier eher um Delphi für Win32.
Und da halte ich eine Erweiterung in dieser Richtung für genauso wahrscheinlich, wie eine native x64 (AMD64) Version des Compilers/Linkers (unwahrscheinlich).

Insider2004 7. Aug 2004 16:50

Re: Gibt es äquivalentes vom C(++) #define für Delphi?
 
Wenn es ein Delphi 10 (Win32) geben wird, dann wird es dieses Feature darin auch geben.

NicoDE 7. Aug 2004 16:57

Re: Gibt es äquivalentes vom C(++) #define für Delphi?
 
Zitat:

Zitat von Insider2004
Wenn es ein Delphi 10 (Win32) geben wird, dann wird es dieses Feature darin auch geben.

Sagt wer? (rhetorische Frage, falls Du eine Antwort hast, bitte per PM)
Ich kenne niemand bei Borland. Und ich habe auch sonst keine 'Insider'-Informationen in dieser Richtung... kann also nur Vermutungen anstellen.
Da das mit dem eigentlichen Thema des Threads nicht mehr viel zu tun hat, sollten wir die Diskussion über Templates hier beenden. Und falls Interesse besteht in einem eigenen Thread fortsetzen.


Gruss Nico

Insider2004 7. Aug 2004 17:27

Re: Gibt es äquivalentes vom C(++) #define für Delphi?
 
Templates haben nichts mit dem Thread zu tun ??? Templates fangen doch mit #define an. Oder :cyclops:

http://homepages.borland.com/dthorpe...45135852831215

Insider2004 7. Aug 2004 17:31

Re: Gibt es äquivalentes vom C(++) #define für Delphi?
 
Hier nochmal für Ungläubige:

"Yes, we are working towards defining and using parameterized types in Delphi syntax. That work won't surface in Delphi product until the .NET platform supports parameterized types (generics), which is .NET 2.0 "Whidbey"."

NicoDE 7. Aug 2004 18:03

Re: Gibt es äquivalentes vom C(++) #define für Delphi?
 
Zitat:

Zitat von Insider2004
Templates haben nichts mit dem Thread zu tun ??? Templates fangen doch mit #define an. Oder :cyclops:

Vielleicht reden wir von verschiedenen Dingen. '#define' ist eine Präprozessor-Anweisung und hat, meiner Meinung nach, gar nichts (nichtmal ansatzweise) mit Templates ((Klassen-)Vorlagen) des C++-Compilers zu tun. 'Generics' sind die 'Templates' der .NET-Welt.

ps: danke für den Link :)


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