Moin,
ich spiele gerade ein bisschen mit bedingter Kompilierung herum und habe festgestellt, dass per Compilerdirektiven definierte Symbole anscheinend nur in der Unit gelten, in der sie deklariert wurden. So habe ich in Global.pas folgendes stehen:
Delphi-Quelltext
1:
| {$DEFINE ALLOC_CONSOLE} |
In Main.pas wiederum steht:
Delphi-Quelltext
1:
| {$IFDEF ALLOC_CONSOLE}allocConsole;{$ENDIF} |
Beim Start des Programms sehe ich kein zweites Konsolenfenster. Wenn ich ALLOC_CONSOLE hingegen in Main.pas selbst definiere, läuft alles wie gewünscht.
Mal davon abgesehen, dass bedingte Kompilierung in meinem Fall wohl absolut überdimensioniert ist:
Ist es tatsächlich so gewollt, dass diese Symbole nur in der Unit bekannt sind, in der sie deklariert wurden? Oder habe ich in Folge meines übermäßigen nachmittaglichen Kaffeekonsums einen Fehler eingebaut? Im ersten Fall scheint die Delphi Hilfe dies jedenfalls als allgemein bekannt vorauszusetzen, denn dieses Verhalten wird dort (afaik) mit keiner Silbe erwähnt.
Nachdenkliche Grüße,
lincore