Delphi中的简单问题。我已经创建了一个控制台应用程序,如果少于80行,则需要将控制台窗口的高度更改为80行。这需要在代码中完成,并且在代码中实际上是有条件的。(例如,当发生错误时,它会增加控制台的大小,以便可以看到整个(巨大的)错误报告。)
请记住,这是一个控制台应用程序!当它启动时,它使用默认的控制台,我需要修改它!
发布于 2010-10-18 18:14:18
在调用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;
发布于 2017-11-30 13:44:05
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 }
https://stackoverflow.com/questions/3958130
复制相似问题