Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Zwei $APPTYPE in einer Anwendung?


blaskito - Di 01.12.09 09:19
Titel: Zwei $APPTYPE in einer Anwendung?
Hallo,

mir ist da eine Anwendung unter die Finger gekommen, die wenn sie über Kommandozeile mit Parametern aufgerufen wird auch als Konsolenanwendung ausgeführt wird (soweit nichts ungewöhnliches). Starte ich sie aber mit Doppelklick aus dem Explorer öffnet sich ein Windows-GUI. Geht sowas eigentlich auch in Delphi? Meines Wissens nach muss ich mich doch zwischen CONSOLE und GUI entscheiden, weil das Programm dann doch auch anders kompiliert wird.

Ist nichts lebenswichtiges - ich bin nur neugierig.
Gruß aus dem Norden
blaskito


ene - Di 01.12.09 09:30

Moin,

Ich habe auch so eine Anwendung, allerdings etwas anders erstellt. Dazu habe ich einfach eine Forms-Anwendung erstellt und in der Projektdatei folgenden Eintrag hinzugefügt:


Delphi-Quelltext
1:
{$APPTYPE CONSOLE}                    


Dann werte ich in den Parameter aus, was passieren soll:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
  If (ParamStr(2) = '-f'Then Begin
    isC:= False;
    Application.Initialize;
    Application.Title := 'Utilities';
    Application.CreateForm(TUtilities, Utilities);
    Application.Run;
  End Else Begin
    isC:= True;
    Konsole(strIn);
  End;


blaskito - Di 01.12.09 16:04

Hi,

danke für den Tip. Es funktioniert. Das einzig Unschöne ist nur, dass in der GUI-Version das Konsolenfenster im Hintergrund steht und wenn ich das schließe, ist natürlich auch mein GUI weg.

Hast du vielleicht auch eine Lösung dafür, das Konsolenfenster im GUI-Modus auszublenden?

Gruß
blaskito


ene - Do 03.12.09 10:13

Ich starte meine Anwendung über eine Befehlszeile, da ist das nicht so schlimm gewesen. Vielleicht hilft dir ein FreeConsole?


blaskito - Mo 07.12.09 22:29

Jupp,
das ist es!