首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改控制台大小

更改控制台大小
EN

Stack Overflow用户
提问于 2010-10-18 18:08:28
回答 2查看 2.2K关注 0票数 2

Delphi中的简单问题。我已经创建了一个控制台应用程序,如果少于80行,则需要将控制台窗口的高度更改为80行。这需要在代码中完成,并且在代码中实际上是有条件的。(例如,当发生错误时,它会增加控制台的大小,以便可以看到整个(巨大的)错误报告。)

请记住,这是一个控制台应用程序!当它启动时,它使用默认的控制台,我需要修改它!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-18 18:14:18

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

我现在这样做:

代码语言:javascript
运行
复制
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;
票数 7
EN

Stack Overflow用户

发布于 2017-11-30 13:44:05

代码语言:javascript
运行
复制
procedure SetConsoleWindow(NewWidth : integer;NewHeight : integer);

var
  Rect: TSmallRect;
  Coord: TCoord;
  begin { SetConsoleWindow }
  Coord.X := NewWidth;
  Coord.y := NewHeight;
  SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), Coord);
  Rect.Left := 0;   //  must be zero
  Rect.Top := 0;
  Rect.Right := Coord.X - (Rect.Left + 1);
  Rect.Bottom := Coord.y - (Rect.Top + 1);
  SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), True, Rect);
  end; { SetConsoleWindow }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3958130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档