Autor Beitrag
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Di 18.02.03 20:19 
Hi,

kann mir mal wer verraten wie man einen Compilerschalter benutzt???

Au'revoir,
Aya~

_________________
Aya
I aim for my endless dreams and I know they will come true!
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Di 18.02.03 22:52 
ausblenden Quelltext
1:
2:
3:
{$Complilerschalter ON}
{$Complilerschalter OFF}
{$Complilerschalter Wert}

Bei den verkürzten Namen:
ausblenden Quelltext
1:
2:
3:
{$Schalter+}
{$Schalter-}
{$Schalter Wert}

_________________
Ist Zeit wirklich Geld?
Aya Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Di 18.02.03 22:54 
Hä? :shock:

_________________
Aya
I aim for my endless dreams and I know they will come true!
Raphael O.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1596


VS 2013
BeitragVerfasst: Di 18.02.03 22:57 
Wollt ich auch gerade sagen... :evil:

könnteste mal erklären was die genau bringen und ein Bsp. geben??

Fiji-Fighter
torstenheinze
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 461



BeitragVerfasst: Di 18.02.03 22:59 
ich dachte sowas wie 'wollt ich auch mal fragen' sollen wir doch net schreiben :shock:
Raphael O.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1596


VS 2013
BeitragVerfasst: Di 18.02.03 23:03 
So was wie du gerade sollte man auch nicht sagen...
Besserwisser ;) :cry:

Zitat:
könnteste mal erklären was die genau bringen und ein Bsp. geben??


das hier hat aber schon ein sinn...

Fiji-Fighter
torstenheinze
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 461



BeitragVerfasst: Di 18.02.03 23:05 
is ja gut :wink: :)
der wird bestimmt schon ein beispiel oder nähere erläuterungen bringen


Zitat:

So was wie du gerade sollte man auch nicht sagen...


ich hab ja nur auf eine bestimmung hingewiesen :roll:
Fred Ferkel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 87



BeitragVerfasst: Di 18.02.03 23:23 
seht doch einfach mal in der delphi hilfe unter compiler-direktiven nach

z.b fpr bedingt compilierung

ausblenden Quelltext
1:
2:
3:
4:
5:
{$define entwicklung}
...
{$ifdef entwicklung}
showmessage(meinstringvalue);
{$endif}
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Di 18.02.03 23:58 
Es wurde doch gefragt: wie man einen Compilerschalter benutzt
Und meine Antwort sind verallgemeinerte Beispiele. Für das Wie und Warum sollte man dann doch mal die Delphi Hilfe konsultieren.

_________________
Ist Zeit wirklich Geld?
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mi 19.02.03 11:32 
Hi,

Compilerschalter kannst du dazu benutzen um dem Compiler beim compilieren mitzuteilen welcher Sourcecode er compilieren soll. Ich benutze in meinem Programm mehrere Compilerschalter um verschiedene Versionen (DEV-, TEST-, BETA-Version) von meinem Programm zu compileren.

So könnte zum Beispiel ein praktischer Einsatz aussehen:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure tMainForm.CreateForm (Sender: tObject);
Begin
{$IFDEF ptDEV}
  Caption := 'Mein Programm v1.0 DEV';
{$ENDIF}

{$IFDEF ptTEST}
  Caption := 'Mein Programm v1.0 TEST';
{$ENDIF}

{$IFDEF ptBETA}
  Caption := 'Mein Programm v1.0 BETA';
{$ENDIF}

{$IFDEF ptPROD}
  Caption := 'Mein Programm v1.0';
{$ENDIF}
End;


Je nach dem welche Version du jetzt compileren willst setzt du unter Projekt-Obtionen den entsprechenden Compilerschalter und der Delphi-Compiler compilert dann nur den entsprechenden Sourcecode.

Gruß
TINO
Brueggendiek
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 304

Win 98, Win98SE, Win XP Home
D5 Std
BeitragVerfasst: Mi 19.02.03 11:56 
Hallo Aya!

Leider geht das ein Wenig durcheinander in diesem Thread!

Compilerschalter dienen dazu, die in "Projekt", "Optionen", "Compiler" möglichen Einstellungen auch direkt im Source vornehmen zu können.
Es gibt globale Schalter, die gelten für eine ganze Datei, und lokale Schalter, die gelten bis zur nächsten Änderung.

Schalter sind z.B.:
A: Ausrichtung der Variablen bei Records: +: ausrichten, -: alle Records als Packed betrachten
B: Boolean auswerten: +: Boolean-Ausdruck immer komplett auswerten, -: nur auswerten, bis eindeutiges Ergebnis vorliegt


Dann gibt es noch weitere Compiler-Direktiven.
Mit $IFDEF, $IFNDEF, $ELSE, $END kan man z.B. mehrere Versionen in einem Source erstellen.
ausblenden Quelltext
1:
2:
3:
{$IFDEF test}
ArbeitsVerzeichnis := 'C:\testdaten\testprogramm';
{$ENDIF}

Wird jetzt in "Projekt", "Optionen", Verzeichnisse/Bedingungen" unter "Bedingungen" der String "test" eingetragen, wird die Zuweisung mitcompiliert, sonst nicht. Dadurch kann man z.B. auf eine Testumgebung umschalten, wenn Entwickung und Einsatz eines Programmes auf demselben Rechner erfolgen sollen - und man sich beim Testen die Daten nicht zerstören will.

Weiteres unter "Liste der Compiler-Direktiven" in der OH!

Die Schalter waren bei früheren Turbo-Pascal-Versionen sehr wichtig, weil es da noch keine Einstellungen im Compiler dafür gab.
Auch heute noch aktuell bei Zugriff auf klassische Dateien (Textfile, typisierte Datei): $I! Dabei gibt es keine Exception-Meldung in der IDE.
Aber wer greift schon mühsam Satz für Satz auf die Festplatte zu, wenn er die Datei doch mit einer "LoadFromFile"-Anweisung blitzschnell und ohne Programmieraufwand (gibbet da eigentlich auch ne Komponente für, bin zu faul, die Zeile zu tippen :?: ) komplett in den Hauptspeicher laden kann - notfalls schreiben wir eben in die Systemvorraussetzungen: mindestens 700GByte RAM :mrgreen:

Gruß

Dietmar Brüggendiek
Raphael O.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1596


VS 2013
BeitragVerfasst: Mi 19.02.03 14:22 
Das kompilierte Programm wird dadurch dann aber auch net größer, weil nicht alles mit reinkompiliert wird, oder??

Fiji-Fighter
Fred Ferkel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 87



BeitragVerfasst: Mi 19.02.03 15:08 
genau vor dem compilieren werden alle kommentare "entfernt" genauso wie die dinge die per compilerdirektive nicht mitkompiliert werden sollen...daher klappt auch z.B:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
  x:integer;
begin
 x:=0;
{$ifdef IrgendwasNichtDefiniertes}
  showmessage(x);
{$endif}
end;