更改控制台大小

Wim*_*ink 2 delphi console-application delphi-2007

Delphi中的简单问题.我已经创建了一个控制台应用程序,我需要将控制台窗口的高度更改为80行,如果它小于80行.这需要从代码中完成,并且实际上是在代码中有条件的.(即发生错误时,它会增加控制台的大小,以便显示整个(巨大的)错误报告.)
请记住,这是一个控制台应用程序!当它启动时,它使用默认控制台,我需要改变它!

Wim*_*ink 6

调用SetConsoleWindowInfo()时,传递给控制台的Left和Top的值至少需要为1,而不是0.问题已解决.

我现在这样做:

uses
  Windows;

var
  Rect: TSmallRect;
  Coord: TCoord;
begin
  Rect.Left := 1;
  Rect.Top := 1;
  Rect.Right := 80;
  Rect.Bottom := 60;
  Coord.X := Rect.Right + 1 - Rect.Left;
  Coord.y := Rect.Bottom + 1 - Rect.Top;
  SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), Coord);
  SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), True, Rect);
end;
Run Code Online (Sandbox Code Playgroud)