About the author
I was looking at the Stackoverflow question - Program both as Console and GUI and noted that there wasn't an example for Delphi, so I created the following.
program TestConsoleGUI; {$APPTYPE GUI} {$R *.res} uses System.SysUtils, VCL.Forms, Winapi.Windows, TestUnit in 'TestUnit.pas' {Form1}; function AttachConsole(const dwProcessId: THandle): BOOL; stdcall; external kernel32 name 'AttachConsole'; var bFreeConsole: Boolean; begin if ParamCount = 0 then try { TODO -oUser -cConsole Main : Insert code here } Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm1, Form1); Application.Run; except on E: Exception do ; // Handle exception here end else begin bFreeConsole := False; if ParamStr(1) = '/CONSOLE' then bFreeConsole := AttachConsole(THandle(-1)) or AllocConsole; try WriteLn('Hello world'); finally if bFreeConsole then FreeConsole; end; end; end.
Learn why the map is cool in Go!
A method to design records so that they're allocated on a specific byte boundary, such as 16 bytes, 512 bytes, 4096 bytes, etc.
Learn the command line used to compile System.pas in Delphi
How to free more space on your home drive by redirecting the location for SDKs in RAD Studio