编写Lazarus程序时,您可以选择在项目选项中使用$APPTYPE console
或取消选择Win32 GUI Application
(-WG
选项。)
我注意到,如果没有这些选项,DebugLn
和WriteLn
会引发异常。有没有办法创建一个控制台,即使程序没有编译上面提到的选项,然后用DebugLn
和WriteLn
输出到它?
答案 0 :(得分:4)
在Windows中,与Delphi相比,它有点棘手。在Delphi中,您需要做的就是致电AllocConsole
。使用Lazarus / FreePascal你需要做一些额外的工作:
uses
Windows;
begin
AllocConsole; // in Windows unit
IsConsole := True; // in System unit
SysInitStdIO; // in System unit
// Now you can do Writeln, DebugLn, ...
end.
不幸的是,我无法在其他平台上帮助你。虽然linux控制台中的iirc始终存在于程序中,即使不可见。所以它应该没有额外的代码。但是,我无法测试这个大气,所以请耐心等待。
答案 1 :(得分:2)
嗯,很明显,将项目设置为gui应用程序而不是程序更适合编程。所有需要的使用条款都是现在的。
所以这样的问题,获得拉撒路的力量,但作为控制台应用程序我解决添加
Application.ShowMainForm:=False;
前
Application.CreateForm(TForm1, Form1);
在.lpr文件中。
一切正常,甚至可以使用showmessage(一切)。