Czyszczenie konsoli w delphi

Alvinek34

Wiele osób pewnie zadaje sobie pytanie na to, jak wyczyścić konsole w Delphi. Oczywiście to nie jest przykład ze sztuczką z przewinięciem konsoli. Tutaj daje wam przykład jak kompletnie ją wyczyścić. Używamy do tego procedury zapożyczonej z starej wersji Delphi bodajże 3:

uses 
  SysUtils, Windows;

procedure ClearScreen;
var
  p                 : COORD;
  nChars            : DWORD;
  buf_info          : CONSOLE_SCREEN_BUFFER_INFO;
  console           : Cardinal;
begin
  console := GetStdHandle(STD_OUTPUT_HANDLE);
  p.X := 0;
  p.Y := 0;
  GetConsoleScreenBufferInfo(Console, buf_info);
  FillConsoleOutputCharacter(Console, ' ', buf_info.dwSize.X * buf_info.dwSize.Y, p, nChars);
  GetConsoleScreenBufferInfo(Console, buf_info);
  FillConsoleOutputAttribute(Console, buf_info.wAttributes, buf_info.dwSize.X * buf_info.dwSize.Y, p, nChars);
  SetConsoleCursorPosition(Console, P);
end;

Teraz możemy napisać coś bez zbędnego bałaganu w konsoli.

2 komentarzy

Ja tam wole taki sposób. Nie lubię upychać programów jakimiś modułami, bo to tylko zwiększa rozmiar. :)

IMO, prościej jest ściągnąć moduł CRT dla Delphi i użyć ClrScr...