Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > ProgressBar1


Автор: Плаха 23.11.2004, 18:10
подскажите где можно найти документацию по работе с этим компонентом или дайте пример как с ним работать

Автор: Satana 23.11.2004, 18:12
Плаха в хелпе блин smile

Автор: Плаха 23.11.2004, 18:19
Цитата(Satana @ 23.11.2004, 18:12)
Плаха в хелпе блин smile

проблема в том, что я в ангиском не селён. вот

Автор: teRmit 23.11.2004, 18:42
а что тебе конкретно надо?

вот некоторые советы:
если хочешь чтобы прогресс отображался не квадратиками а сплошной линией ставь свойство
ProgressBar1.Smooth:=true;
управлять индикацией можно например так:
в цикле который что-то делает меняешь с нужной скоростью
ProgressBar1.Position:=i; (i - нужная позиция прогрессбара от ProgressBar1.Min до ProgressBar1.Max)

Код

for i:=0 to 100 do
 begin
    .......
    ProgressBar1.Position:=i;
 end;

Автор: Плаха 23.11.2004, 21:14
суть такога:
запущен цыкл(из текста убирам лишние значения). как к этому циклу привязать ProgressBar1.

Автор: teRmit 24.11.2004, 09:41
ты приведи пример цикла

Автор: Satana 24.11.2004, 09:46
Плаха Ну в общем случае будет примерно так:
Код

for i:=1 to max do
begin
...
ProgressBar1.Position:=round((i/max)*100);
end;


Так у тебя будет заполняться прогресс бар в зависимости от того на какой стадии выполнения у тебя цыкл...

Автор: Плаха 24.11.2004, 10:41
cTePx
Код

for m:=0 to n do
begin
s:= Memo_ListProxy.Lines[m];
i:= pos(':',s);
ip:= Copy( S,1,i-1);
Edit_DNSName.Text:= ip;  
Ping1.DnsLookup(Edit_DNSName.Text);
end;

Автор: Akella 24.11.2004, 15:45
Код

pb1.position:=0;
pb1.max:=n
for m:=0 to n do
begin
s:= Memo_ListProxy.Lines[m];
i:= pos(':',s);
ip:= Copy( S,1,i-1);
Edit_DNSName.Text:= ip;  
Ping1.DnsLookup(Edit_DNSName.Text);
pb1.position:=n;
application.processmessages;//дает отработать системе очередь задач другим приложениям
                                               //в том числе и твоему, в том числе и обновление окон, и обно-
                                                //вление твоего pb1
end;


Автор: Satana 24.11.2004, 18:40
dsergey Помойму pb1.position в данному случае нада не в n ставить а в (m/n*100) и округленное до целой части, просто чо получается на первой жеж итерации прогресс бар заполнится до максимума и все...

Автор: Akella 25.11.2004, 09:39
да ошибочка вышла, но это мелочи

pb1.position:=0;
pb1.max:=m
for m:=0 to n do
begin
s:= Memo_ListProxy.Lines[m];
i:= pos(':',s);
ip:= Copy( S,1,i-1);
Edit_DNSName.Text:= ip;
Ping1.DnsLookup(Edit_DNSName.Text);
pb1.position:=m;
application.processmessages;//дает отработать системе очередь задач другим приложениям в том числе и твоему, в том числе и обновление окон, и обновление твоего pb1
end;

Автор: Плаха 25.11.2004, 09:41
Всем спасибо. Общими усилиям всетаки всё заработало как надо.
Как говориться : "с миру по нитки каждому рубаха"
итоговый код:
Код


pb1.position:=0;
pb1.max:=100
for m:=0 to n do
begin
s:= Memo_ListProxy.Lines[m];
i:= pos(':',s);
ip:= Copy( S,1,i-1);
Edit_DNSName.Text:= ip;  
Ping1.DnsLookup(Edit_DNSName.Text);
pb1.position:=round(m/n*100);
application.processmessages;//дает отработать системе очередь задач другим приложениям
                                              //в том числе и твоему, в том числе и обновление окон, и обно-
                                               //вление твоего pb1
end;


может кому пригодиться

Satana тебе отдельное спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)