![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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;