Hacer un "clear screen" en una aplicación cónsola
Artículo por Club Developers · 01 marzo 2006
3530 vistas
En una aplicación cónsola no es posible borrar la pantalla como harÃamos con el procedimiento clrstr de Turbo Pascal. El procedimiento cls descrito a continuación explica cómo conseguirlo:
delphi
program consolecls; {$APPTYPE CONSOLE} uses  SysUtils, Windows; procedure cls(hConsole: THandle); const  coordScreen: TCoord = (X:0;Y:0); // posición origen del cursor var  cCharsWritten: DWord;  csbi: TConsoleScreenBufferInfo;  dwConSize : DWord; begin  // obtenemos el nombre de carácteres que hay dentro del buffer en curso  if not GetConsoleScreenBufferInfo(hConsole, csbi ) then exit;  dwConSize:=csbi.dwSize.X * csbi.dwSize.Y;  // llenamos la pantalla con espacios  if not FillConsoleOutputCharacter( hConsole, #32, dwConSize, coordScreen, cCharsWritten ) then exit;  // obtenemos el atributo del texto en curso  if not GetConsoleScreenBufferInfo( hConsole, csbi ) then Exit;  // pone los atributos del buffer  if not FillConsoleOutputAttribute( hConsole, csbi.wAttributes,dwConSize, coordScreen, cCharsWritten ) then exit;  // pone el cursor en las coordenadas de orÃgen  SetConsoleCursorPosition( hConsole, coordScreen ); end; var  HandleConsole: THandle; begin  HandleConsole := GetStdHandle(STD_OUTPUT_HANDLE);  if (HandleConsole <> INVALID_HANDLE_VALUE) then Cls(HandleConsole)  else Write('¡Error en la inicialización de la aplicación!');