Как очистить экран в консольном приложении?

Материал из DRKB

Как очистить экран в консольном приложении?[править | править код]

Нужно просто использовать GetConsoleScreenBufferInfo() для ввода нескольких пустых строк.


program Project1;

{$APPTYPE CONSOLE}

uses
  Windows;

{$R *.RES}

var
  sbi: TConsoleScreenBufferInfo;
  i: Integer;
begin
  Writeln('A Console Applicaiton');
  Writeln('Press Enter To Clear The Screen');
  GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), sbi);
  Readln;
  GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), sbi);
  for i := 0 to sbi.dwSize.y do
    WriteLn;
  WriteLn('Press Enter To End');
  ReadLn;
end.


Author: Олег Кулабухов
Source: Взято с http://delphiworld.narod.ru
ID: 02192



uses
  Windows;

procedure ClearConsoleWindow;
var
  ConsoleHandle: THandle;
  ConsoleInfo: TConsoleScreenBufferInfo;
  Coord: TCoord;
  WrittenChars: DWORD;
begin
  FillChar(ConsoleInfo, SizeOf(TConsoleScreenBufferInfo), 0);
  FillChar(Coord, SizeOf(TCoord), 0);
  ConsoleHandle := GetStdHandle(STD_OUTPUT_HANDLE);
  GetConsoleScreenBufferInfo(ConsoleHandle, ConsoleInfo);
  FillConsoleOutputCharacter(ConsoleHandle, ' ', ConsoleInfo.dwSize.X * ConsoleInfo.dwSize.Y, Coord, WrittenChars);
  SetConsoleCursorPosition(ConsoleHandle, ConsoleInfo.dwCursorPosition);
end;


Author: Krid
Source: Взято из http://forum.sources.ru
ID: 02193