Buildmodes für bedingte Kompilierung verwenden

Für Fragen von Einsteigern und Programmieranfängern...

Buildmodes für bedingte Kompilierung verwenden

Beitragvon af0815 » 24. Mai 2017, 09:03 Buildmodes für bedingte Kompilierung verwenden

Ich verwende zum Beispiel die klassischen Buildmodes 'Debug' und 'Release' - 'Default' lösche normalerweise. Kann ich diese Buildmodes direkt für die bedingte Programmierung verwenden ? Die Lazarus/FPC Wiki hat mir bei der Suche jede Menge Infos ausgespuckt, aber genau diesen Fall aber nicht. Zumindest habe ich nichts gefunden 8)

Ich möchte sowas verwenden und dort im IFDEF direkt die Buildmodes verwenden ohne mit -dDebug das für jeden Buildmode zu konfigurieren.
Code: Alles auswählen
 
{$IFDEF Debug}
  XMLPropStorage1.FileName:=ChangeFileExt(paramstr(0),'.xml');;
{$ELSE}
  XMLPropStorage1.FileName:=GetLocaldata.PropStorageName;
{$ENDIF}
 


Vielleicht steht eh in der Wiki, dann bitte nur den Link dorthin :-)

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3502
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon Socke » 24. Mai 2017, 11:00 Re: Buildmodes für bedingte Kompilierung verwenden

af0815 hat geschrieben:Ich möchte sowas verwenden und dort im IFDEF direkt die Buildmodes verwenden ohne mit -dDebug das für jeden Buildmode zu konfigurieren.

Ich fürchte genau das wird notwendig sein.
Der Compiler kenn keine Build Modes und Lazarus definiert auch keinen Define automatisch (laut Ausgabe bei der Compilierung mit -va).
Bei den Defines mit -dDEBUG und -dRELEASE solltest du überprüfen, ob damit keine Einstellungen durch die Compiler-Konfigurationsdatei aktiv werden. Dort hatte ich schon mal entsprechende Abschnitte gesehen, die z.B. Debug-Infos ein- oder ausschalten.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Socke
 
Beiträge: 2557
Registriert: 22. Jul 2008, 18:27
Wohnort: Köln
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 8.1/Debian GNU/Linux/Raspbian/openSUSE | 
CPU-Target: 32bit x86 armhf
Nach oben

Beitragvon wp_xyz » 24. Mai 2017, 12:01 Re: Buildmodes für bedingte Kompilierung verwenden

Es gibt seit einiger Zeit "Additions and Overrides" (im deutschen Lazarus übersetzt als "Hinzufügungen und Beeinflussungen") unter den Projekt-Optionen. Hier kannst du für jeden Build-Mode getrennt Symbole für bedingte Compilierung vereinbaren, per "Add" > "Custom option". So kannst du für den Debug-Build-Mode das Define "DEBUG" und für den Release-BuildMode das Define "RELEASE" deklarieren und diese im Code abfragen:
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
  {$IFDEF DEBUG}
  Label1.Caption := 'DEBUG';
  {$ENDIf}
  {$IFDEF RELEASE}
  Label1.Caption := 'RELEASE';
  {$ENDIF}
end;
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
wp_xyz
 
Beiträge: 2701
Registriert: 8. Apr 2011, 08:01

Beitragvon af0815 » 24. Mai 2017, 22:06 Re: Buildmodes für bedingte Kompilierung verwenden

Ok, Danke, ich habe es befürchtet.
Ansonsten hat jeder s....ß ein define, nur dort wo mans braucht nicht. OpenSource halt :-) Mann kann es sich ja richten.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3502
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

• Themenende •

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste

porpoises-institution
accuracy-worried