Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.09.2011, 13:48
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
По умолчанию Изменить строку в консольном приложении

Доброго времени суток!

{$APPTYPE CONSOLE}

Пишу программу в виде консольной, так вот: каким образом можно изменить строку (указав ее индекс в консольном списке) в консоли? Пример, при архивации RAR'ом показывается статус архивации.

Заранее спасибо!
Ответить с цитированием
  #2  
Старый 04.09.2011, 13:56
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

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  
Старый 06.09.2011, 22:09
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
По умолчанию

v1s2222, спасибо. Это и есть что я искал, но у меня есть код покруче:

Код:
Write('Progress 0% [_____]');
Write(#10);
Write('Progress 20% [#____]');
...

Последний раз редактировалось GriLab, 08.09.2011 в 23:54.
Ответить с цитированием
  #4  
Старый 06.09.2011, 22:24
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Ничего крутого, #13 - код перевода строки. Ты все время опускаешься на строку ниже. Тогда уж используй #10 - переход в начало строки.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 08.09.2011, 23:54
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
По умолчанию

angvelem, ошибся значит, спасибо (исправил).
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:04.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter