How can I write to the console window for debugging?

后端 未结 4 1886
南笙
南笙 2020-12-13 19:10

Can I display the result of a loop in the console window in a VCL application for debugging purposes?

4条回答
  •  不思量自难忘°
    2020-12-13 19:45

    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.

提交回复
热议问题