Writeln 未按应有的方式工作

问题描述 投票:0回答:1

我是 Lazarus 新手,正在尝试编写一些基本代码:

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs;

type
  TForm1 = class(TForm)
  private
    // Hier können Sie private Mitglieder deklarieren, wenn benötigt.
  public
    // Hier können Sie öffentliche Mitglieder deklarieren, wenn benötigt.
  end;

var
  Form1: TForm1;
  jame: string;

implementation

{$R *.lfm}

begin
  writeln(jame);

end.      

问题是它显示此错误:

如果有人能够帮助我,那就太好了。

delphi lazarus
1个回答
0
投票

新手在 Windows 上通常会遇到

EInOutError
,因为 Win32 Lazarus 应用程序默认情况下不附带控制台。所以,你必须自己定义它。

选项 1 - 保留图形应用程序并输出到某个文件

unit windows.output;

{$mode ObjFPC}{$H+}

interface

uses
  Classes, SysUtils;

  procedure Print(S : string);

implementation

const
  DebugOutputFilename : string = 'DebugOutput.txt';

var
  DebugOutput : TextFile;

procedure Print(S: string);
begin
  WriteLn(DebugOutput, S);
  System.Flush(DebugOutput);
end;

initialization
  AssignFile(DebugOutput, DebugOutputFilename);
  if FileExists(DebugOutputFilename) then
    System.Erase(DebugOutput);
  System.Rewrite(DebugOutput);
  System.Append(DebugOutput);

finalization
  System.Close(DebugOutput);

end.

选项 2 - 将您的应用程序更改为控制台应用程序并输出到 cmd

取消选中

Win32 gui application option
即可完成。

© www.soinside.com 2019 - 2024. All rights reserved.