Ik wil van een programma van mij ook een console-versie maken. Het spreekt vanzelf dat de uitvoer hier bij anders moet. In de GUI doe ik de uitvoer (via messages uiteindelijk) naar een TMemo. Die is in de console-app niet beschikbaar (duh?).
Is er middels conditioneel compilen te ontdekken of je bezig bent vor een console-app of niet?
De windows-versie is bv:
De console app is dan bv:
Ik hoopte via een eigen variabele (CONSTEST) te detecteren of er sprake is van een console-app, maar die moet in elke unit opnieuw worden gezet. Is er een andere manier om conditioneel te compileren?
Is er middels conditioneel compilen te ontdekken of je bezig bent vor een console-app of niet?
De windows-versie is bv:
Delphi:
1
2
3
4
5
6
7
| Program Test1; uses SysUtils, uitvoer; begin Schrijf ('Hello world!'); end. |
De console app is dan bv:
Delphi:
1
2
3
4
5
6
7
8
| Program Test1con; {$APPTYPE CONSOLE} {$DEFINE CONSTEST} uses SysUtils, uitvoer; begin Schrijf ('Hello world!'); end. |
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| Unit uitvoer; uses SysUtils; Procedure Schrijf(txt:string); Procedure Schrijf(txt:string); Begin {$IFDEF CONSTEST} WriteLn(txt); {$ELSE} Memo1.add(txt); {$ENDIF} End; end. |
Ik hoopte via een eigen variabele (CONSTEST) te detecteren of er sprake is van een console-app, maar die moet in elke unit opnieuw worden gezet. Is er een andere manier om conditioneel te compileren?