![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Доброго времени суток!
{$APPTYPE CONSOLE} Пишу программу в виде консольной, так вот: каким образом можно изменить строку (указав ее индекс в консольном списке) в консоли? Пример, при архивации RAR'ом показывается статус архивации. Заранее спасибо! |
|
#2
|
||||
|
||||
|
http://codingworld.ru/showthread.php?p=4828
Код:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils,
Windows,
Unit1 in 'Unit1.pas';
var
imax : integer = 100;
inow : string = '';
psi : integer;
begin
Writeln('This is the test with GotoXY');
Writeln('Progress: 0%');
for psi := 0 to imax do
begin
GotoXY(10, 1);
write(IntToStr(psi) + '%');
Sleep(100);
end;
Readln;
end.
unit Unit1;
interface
procedure SetAttr(attr: word);
function GetAttr: word;
procedure GotoXY(aX, aY: integer); { zero-based coords }
function WhereX: integer;
function WhereY: integer;
implementation
uses Windows;
var
UpperLeft: TCoord = (X:0; Y:0);
hCon: integer;
procedure GotoXY(aX, aY: integer);
var
aCoord: TCoord;
begin
aCoord.x:=aX;
aCoord.y:=aY;
SetConsoleCursorPosition(hCon,aCoord);
end;
procedure SetAttr(attr: word);
begin
SetConsoleTextAttribute(hCon,attr);
end;
function WhereX: integer;
var
ScrBufInfo: TConsoleScreenBufferInfo;
begin
GetConsoleScreenBufferInfo(hCon,ScrBufInfo);
Result:=ScrBufInfo.dwCursorPosition.x;
end;
function WhereY: integer;
var
ScrBufInfo: TConsoleScreenBufferInfo;
begin
GetConsoleScreenBufferInfo(hCon,ScrBufInfo);
Result:=ScrBufInfo.dwCursorPosition.y;
end;
function GetAttr: word;
var
ScrBufInfo: TConsoleScreenBufferInfo;
begin
GetConsoleScreenBufferInfo(hCon,ScrBufInfo);
Result:=ScrBufInfo.wAttributes;
end;
initialization
hCon := GetStdHandle(STD_OUTPUT_HANDLE);
end. |
|
#3
|
||||
|
||||
|
v1s2222, спасибо. Это и есть что я искал, но у меня есть код покруче:
Код:
Write('Progress 0% [_____]');
Write(#10);
Write('Progress 20% [#____]');
...Последний раз редактировалось GriLab, 08.09.2011 в 23:54. |
|
#4
|
||||
|
||||
|
Ничего крутого, #13 - код перевода строки. Ты все время опускаешься на строку ниже. Тогда уж используй #10 - переход в начало строки.
|
|
#5
|
||||
|
||||
|
angvelem, ошибся значит, спасибо (исправил).
|