{$APPTYPE CONSOLE} setzt bloß ein Flag im
PE-Header der EXE,
womit Windows automatisch STDIN/STDOUT/ERROUT mit der aufrufenden Console verknüpft und wenn es noch keine Konsole gibt, dann wird automatisch eine erstellt.
Mit AllocConsole/AttachConsole/FreeConsole kann man die Konsole auch selbst erstellen oder
darauf zugreifen sich damit verbinden (wenn schon da).
Genauso kann man auch gleichzeitig
VCL und FMX nutzen.
Man muß dafür nur die fehlenden Dinge selbst initialisieren (Application.Initialize) und im Falle der ConsoleApp auch die MessageQueue abarbeiten (das was Application.Run oder .ProcessMessages macht)
Ein Therapeut entspricht 1024 Gigapeut.