Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Console Application [D6, WinXP]


J_S ©   (2002-09-09 17:23:00) 

Как сделать зачистку экрана консольного приложения? Досо-паскалевский ClrScr не работает.


J_S   (2002-09-09 19:09:00) [1]

Весьма желательно чтобы это еще работало бы еще и в Kylix...


MBo   (2002-09-09 18:19:00) [2]

program Project2;
{$APPTYPE CONSOLE}
uses SysUtils, windows;
var
h: thandle;
Size, Origin: TCoord;
Written: DWord;
begin
writeln("qwerererrr");
writeln("qwerererrr");
writeln("qwerererrr");
writeln("qwerererrr");
readln;
h := GetStdHandle(STD_OUTPUT_HANDLE);
Size := GetLargestConsoleWindowSize(h);
Origin.X := 0;
Origin.Y := 0;
FillConsoleOutputCharacter(H, " ", Size.X * Size.Y, Origin, Written);
SetConsoleCursorPosition(H, Origin);
writeln("Begin");
readln;
end.


Старый Паскалист   (2002-09-09 18:09:00) [3]

Единственное, что пришло в голову:
(опыта работы с консолью у меня нет, может быть, существует более лёгкий путь)

procedure ClrScr;
var hOut: Integer;
c: TCoord;
cbi: TConsoleScreenBufferInfo;
i: Integer;
j: Cardinal;
s: string;
begin
hOut := GetStdHandle(STD_OUTPUT_HANDLE);

GetConsoleScreenBufferInfo(hOut, cbi);

// for i := 0 to cbi.dwSize.Y do
// WriteLn("");

// так может быть быстрее. А может, и нет
for i := 0 to cbi.dwSize.Y do s := s + #13#10;
WriteConsole(hOut, @s[1], Length(s), j, nil);

c.X := 0;
c.Y := 0;
SetConsoleCursorPosition(hOut, c);

end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо