AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Unterschiedliche Units für Debug und Release
Thema durchsuchen
Ansicht
Themen-Optionen

Unterschiedliche Units für Debug und Release

Ein Thema von davtix · begonnen am 31. Okt 2021 · letzter Beitrag vom 31. Okt 2021
Antwort Antwort
davtix

Registriert seit: 29. Mai 2003
Ort: Berlin
87 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: Unterschiedliche Units für Debug und Release

  Alt 31. Okt 2021, 12:47
ging ja schnell

Hab n bissel rumgewürgt aber es scheinbar so hier hinbekommen.


Delphi-Quellcode:
  uses .. ..JvExExtCtrls, JvExtComponent, JvCaptionPanel,

    //unterschiedliche pas dateien im Debugmodus / releaseModus
   Release_codes {$IFDEF DEBUG} , Debug_codes {$ELSE}   {$ENDIF} ;
Delphi-Quellcode:
unit Release_codes;

interface


   function release_debug:string;


implementation


function release_debug:string;
begin

  result := 'kommt von a release unit'
end;

end.
Delphi-Quellcode:
unit Debug_codes;

interface

   function release_debug:string;


implementation


function release_debug:string;
begin

  result := 'kommt von a debug unit'
end;

end.

in der unit1 beim start dann ...
Delphi-Quellcode:
  //Form ausrichten
      Form1.Width := GetDPI(1200);
      Form1.Height := GetDPI(800);
      Form1.Left := Screen.Width - Form1.Width;
      Form1.Top := screen.Height - (screen.Height - screen.WorkAreaHeight) - form1.Height;


  tempS := release_debug;
  form1.Caption := tempS;

  exit;
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#2

AW: Unterschiedliche Units für Debug und Release

  Alt 31. Okt 2021, 13:16
Durch das IFDEF wird ja schon quasi ausgeschlossen, dass die jeweiligen Units direkt in das Projekt aufgenommen werden, sondern lediglich über diese uses-Anweisung eingebunden werden.

In dem Fall lässt sich das auch ohne IFDEF realisieren, in dem man in den Build-Konfigurationen unterschiedliche Suchpfade einträgt und dort jeweils passende Units ablegt, die aber gleich heißen (hier z.B. codes.pas).

Natürlich sollte auch sichergestellt werden, dass der DCU-Ausgabepfad für Release und Debug unterschiedlich ist, was aber per Default mit .\$(Platform)\$(Config) ja schon gewährleistet wäre.

Das hätte den Vorteil, dass die verwendenden Units beim Wechsel zwischen Debug und Release nicht jedes mal neu übersetzt werden müssen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#3

AW: Unterschiedliche Units für Debug und Release

  Alt 31. Okt 2021, 13:19
Delphi-Quellcode:
  uses .. ..JvExExtCtrls, JvExtComponent, JvCaptionPanel,

    //unterschiedliche pas dateien im Debugmodus / releaseModus
   Release_codes {$IFDEF DEBUG} , Debug_codes {$ELSE}   {$ENDIF} ;
Das würde ich so nicht machen, weil du dann im DEBUG beide Units einbindest und es von der Reihenfolge der Einbindung abhängt, aus welcher Unit die Funktion gerufen wird. Anders ausgedrückt: Würde das IFDEF vor dem Release_codes stehen, würde immer Release_codes.release_debug gerufen werden, weil das zuletzt eingebundene gewinnt - jedenfalls solange man bei solchen Mehrdeutigkeiten nicht explizit die Unit angibt.

Besser ist
Delphi-Quellcode:
  uses .. ..JvExExtCtrls, JvExtComponent, JvCaptionPanel

    //unterschiedliche pas dateien im Debugmodus / releaseModus
    {$IFDEF DEBUG} , Debug_codes {$ELSE}, Release_codes {$ENDIF} ;

[EDIT]
Ich ziehe IFDEFs den Suchpfaden vor, weil beim Lesen des reinen Codes sofort klar wird, aus welcher Unit der Code kommt. Bei Verwendung von Suchpfaden muss man sich selbige ebenfalls anschauen, um einen Gesamtüberblick des Codes zu bekommen. Gerade ohne IDE ist das eher lästig, in der .dproj rumzugraben.
[/EDIT]

Grüße
Dalai

Geändert von Dalai (31. Okt 2021 um 13:49 Uhr)
  Mit Zitat antworten Zitat
davtix

Registriert seit: 29. Mai 2003
Ort: Berlin
87 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Unterschiedliche Units für Debug und Release

  Alt 31. Okt 2021, 13:36
@Uwe Raabe , das habe ich schon probiert jedoch ohne erfolg.


@Dalai Ich hab mich schon gewundert warum die IFDEF danach stehen.

so richtig versteh ich das nicht. Es funktioniert nur wenn ich das Komma nach JvCaptionPanel wegnehme.
{$IFDEF DEBUG} hat doch aber nichts mit dem CaptionPanel zu tun ???

Delphi-Quellcode:
  uses ..

 JvExExtCtrls, JvExtComponent, JvCaptionPanel

    //unterschiedliche pas dateien im Debugmodus / releaseModus
   {$IFDEF DEBUG} , Codes_Debug {$ELSE}, Codes_Release {$ENDIF} ;
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#5

AW: Unterschiedliche Units für Debug und Release

  Alt 31. Okt 2021, 13:49
so richtig versteh ich das nicht. Es funktioniert nur wenn ich das Komma nach JvCaptionPanel wegnehme.
Da hast du vollkommen recht, werde das in obigem Beitrag noch korrigieren.

Zitat:
{$IFDEF DEBUG} hat doch aber nichts mit dem CaptionPanel zu tun ???
Hat es nicht, aber die Syntax der uses-Klausel muss stimmen. Nur genau ein Komma zwischen zwei Units.

Grüße
Dalai
  Mit Zitat antworten Zitat
davtix

Registriert seit: 29. Mai 2003
Ort: Berlin
87 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Unterschiedliche Units für Debug und Release

  Alt 31. Okt 2021, 13:59
Ahhh , die Syntax beginnt mit nem Komma oder vor dem Komma steht {} .
Hab ichs jetzt verstanden ?


Auf jedem danke ich dir.
Das werde ich auch für meine anderen Projekte nutzen in dem Tonnen von Test-Proceduren stehen. Die Anwendungen sind dann dementsprechend gross.
Die Codes so sauberer zu halten und die Stunden zur Quellcodesäuberung sind damit hinfällig.

Angenehmen Sonntag dir
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#7

AW: Unterschiedliche Units für Debug und Release

  Alt 31. Okt 2021, 15:39
@Uwe Raabe , das habe ich schon probiert jedoch ohne erfolg.
Na sowas! Anbei ein Testprojekt mit dem es funktioniert.
Angehängte Dateien
Dateityp: zip TestSubFolder.zip (5,7 KB, 3x aufgerufen)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 21:44 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