Can I display the result of a loop in the console window in a VCL application for debugging purposes?
The simplest way is to compile as a console application, but put the normal application framework code back in the dpr.
program Project2;
{$APPTYPE CONSOLE}
uses
Forms,
SysUtils,
Unit1 in 'Unit1.pas' {Form1};
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
writeln('Hello, World!');
Application.Run;
end.
A slightly more complex way is to use the Windows API AllocConsole call:
program Project2;
uses
Forms,
SysUtils,
Windows,
Unit1 in 'Unit1.pas' {Form1};
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
AllocConsole;
writeln('Hello, World!');
Application.Run;
end.
This method has the (usually) disadvantage of creating a new console if you are calling from the command line. From memory getting redirection to work requires some more code as well. The advantage is that you can decide to allocate the console at run-time, rather than compile time.