Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Compiler Switch (https://www.delphipraxis.net/116692-compiler-switch.html)

SyntaxError 4. Jul 2008 12:30


Compiler Switch
 
Hallo,
Ich habe bisher wenige Erfahrungen mit Compiler Switches Delphi, aber ich möchte folgendes realisieren: Während der Entwicklung nutze ich FastMM4 zum MemoryLeaks identifizieren, dazu muss ich die beiden Units FastMM4 und FastMM4Messages einbinden. Ich möchte aber dass die Units nur eingebunden werden wenn ich das Programm in der IDE starte. Gibt es das einen Switch der rausfindet ob das Programm in der IDE gestartet wird oder extern?
gruss

p80286 4. Jul 2008 13:18

Re: Compiler Switch
 
Hallo SyntaxError,

Was Du willst geht so nicht!
Auch wenn Du "ein Programm in der IDE startest" wir zunächst eine EXE-Datei erstellt, in der alle vorhandenen Units eingebunden sind, und das beinahe unabhäng von der IDE ist.
(Noch gibts richtige Programme und nicht dieses Interpreterfutter)

Aber Du könntest z.B. so etwas nutzen:
Delphi-Quellcode:
{$DEFINE TESTUMGEBUNG}
{$IFDEF TESTUMGEBUNG}
uses FastMM4,unit1;
{$ELSE}
uses unit1;
{$ENDIF}
(Ein Blick ins Handbuch kann da nicht schaden)

Gruß
K-H

gammatester 4. Jul 2008 13:21

Re: Compiler Switch
 
Compilerswitches sind zur Kompilierungszeit aktiv, und da ist es (besser sollte es) egal sein, ob in der IDE oder via DCC32 kompiliert wird.

Eine einfache Abfrage, ob ein Programm in der IDE läuft, kann man über DebugHook>0 durchführen, allerdings sind die Units dann natürlich schon eingebunden.

Andererseits kannst Du zB einen Conditional define IN_IDE in den IDE-Projektoptionen definieren und im Source benutzen, mußt dann aber darauf achten, daß die Release- bzw. die DCC32-Version IN_IDE nicht definert.

Gruß Gammatester

Edit: Wieso erzeugt die Rote Warnung einen leeren Beitrag, der wenn editiert wird nicht leer is??

SyntaxError 4. Jul 2008 13:38

Re: Compiler Switch
 
Hallo,
Danke für die Antworten! Stimmt, da hab ich mich wohl falsch ausgedrückt, sorry!
Das mit dem Conditional ist das was ich meinte, also dass ich das Programm compilieren kann mit und ohne diese Units!

OldGrumpy 4. Jul 2008 14:11

Re: Compiler Switch
 
FastMM4 hat eigentlich immer Vorteile, nicht nur zum Debuggen. Der Dreh- und Angelpunkt ist das Configfile von FastMM4, und genau da hab ich angesetzt: Für die Debugversion aktiviere ich die Option "Stackframes erzeugen", und in FastMM4.pas binde ich in Abhängigkeit dieses Compilerswitches dann entweder das Configfile für die Debugkonfiguration ein (mit Memleak-Diagnose usw.) oder das für die Releasekonfiguration, in der FastMM4 einfach nur brav ein flotter Memorymanager ist. Funktioniert wunderbar.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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