AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Globale Compilerdirektiven!?

Ein Thema von Dust Signs · begonnen am 29. Dez 2004 · letzter Beitrag vom 29. Dez 2004
Antwort Antwort
Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#1

Globale Compilerdirektiven!?

  Alt 29. Dez 2004, 15:31
Kurze Frage: kann es sein, dass {$DEFINE}-Direktiven nicht global verwendet werden können? Beispielcode:

Delphi-Quellcode:
program dstpclt;

{$DEFINE STANDALONE} //Standalone EXE (non-networking)

uses
  FastShareMem,
  Forms
  {$IFDEF STANDALONE}
  , ClientMain in 'ClientMain.pas{StandaloneMainForm}
  {$ENDIF};

{$R *.res}

begin
  Application.Initialize;
  Application.Title := 'DSTP Terminplaner 2.0 Client';

  {$IFDEF STANDALONE}
    Application.CreateForm(TStandaloneMainForm, StandaloneMainForm);
  {$ENDIF}

  Application.Run;
end.
Der Code innerhalb der {$DEFINE}-Direktive in ClientMain.pas wird nicht kompiliert:

Delphi-Quellcode:
...

{$IFDEF STANDALONE}
function SendRequest(Request: String): Integer;
begin
  Result := _SendRequest('127.0.0.1', '$public', Request);
end;
{$ENDIF}

...
Dust Signs
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Globale Compilerdirektiven!?

  Alt 29. Dez 2004, 15:35
Hi,
Compilerdirektiven sind AFAIK normalerweise global, allerdings keine Defines, die du meinst.
Was du machen kannst, ist eine zusätzliche Unit erstellen, in der du alles definierst, was du global brauchst und diese Unit (bzw. einfacher wäre eine Datei, die du dann includest) einbindest.

Chris
  Mit Zitat antworten Zitat
Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#3

Re: Globale Compilerdirektiven!?

  Alt 29. Dez 2004, 15:44
Aber warum funktioniert mein Code dann nicht ?

Dust Signs
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Globale Compilerdirektiven!?

  Alt 29. Dez 2004, 17:45
Moin!

Wenn du ein {$DEFINE xxx} in einer Unit schreibst, dann gilt diese nur in der Unit und ist nur da gültig. Wenn du es projektweit haben willst, dann nutze kein {$DEFINE xxx} zum definieren sondern Projekt->Optionen->Verzeichnisse/Bedingungen->Bedingungen->Definitionen und trage dort die Schlüsselwörter ein - mit Semikolon werden diese abgetrennt wenn du mehrere hast. Also in deinem Falle einfach ein STANDALONE dort eintragen.

Andere Möglichkeit wie es z.B. die JEDI Leute vorziehen ist die Benutzung einer Include Datei die dann von jeder Unit angezogen wird. Darin dann diese {$DEFINE xxx} positionieren.

MfG
Muetze1
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz