Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.07.05;
Скачать: CL | DM;

Вниз

Подвисание формы   Найти похожие ветки 

 
товарищ вася   (2009-05-18 08:50) [0]

Здравствуйте товарисчи!
Проблемка такая: при показе второй формы (fWait) она зависает, а на этой форме находится прогрессБар ... рефреширую форму каждый раз но всё равно виснет...
Самое прикольное что когда из дельфи запускаешь он не подвисает...

procedure TForm1.ParseRepaintClick(
 Sender: TObject);
var i:integer; cd,cr:Real;
begin
     richedit2.Clear;
     RichEdit1.Lines.BeginUpdate;
     RichEdit2.Lines.BeginUpdate;
     loading:=true;
     fWait.Show; cr:=0; cd:=GetCurrentTime; fWait.Position:=poMainFormCenter;
     for I:=0 to richedit1.Lines.Count-1 do
     begin
     fWait.Refresh; Form1.Refresh;  fWait.Repaint; Form1.Repaint;  FWait.Caption:="REPAINTING...";
     fWait.ProgressBar1.Position:=trunc(i*100 / richedit1.Lines.Count);
     cr:=GetCurrentTime-cd;
     fWait.Label2.Caption:=floattostr(trunc((i/(cr+0.001))*1000)) ;
     fwait.Label1.Caption:=floattostr(trunc(cr) / 1000);
     fWait.Label6.Caption:=Floattostr(trunc(cr/1000*((richedit1.Lines.Count-1)/(i-0.001)-1)));
     colorize(i);
     end;
     cr:=0; cd:=GetCurrentTime;
     for i:=0 to richedit1.Lines.Count-1 do
     begin
     fWait.Refresh; Form1.Refresh; fWait.Repaint; Form1.Repaint;   FWait.Caption:="PARSING...";
     fWait.ProgressBar1.Position:=trunc(i*100 / richedit1.Lines.Count);
     cr:=GetCurrentTime-cd;
     fWait.Label2.Caption:=floattostr(trunc((i/(cr+0.001))*1000)div 1) ;
     fwait.Label1.Caption:=floattostr(trunc(cr) div 1000);
     fWait.Label6.Caption:=Floattostr(trunc(cr/1000*((richedit1.Lines.Count-1)/(i-0.001)-1)));
     richedit2.lines.Add(encode(richedit1.Lines.strings[i]));
     end;
     loading:=false;
     RichEdit1.Lines.EndUpdate;
     RichEdit2.Lines.EndUpdate;
     richedit2.SelStart:=0;
     richedit1.SelStart:=0;
     fWait.Hide;
end;

А теперь уважаемые знатоки вопрос:
Кто виноват, и что делать?


 
MonoLife ©   (2009-05-18 09:00) [1]

Application.ProcessMessage


 
Сергей М. ©   (2009-05-18 09:02) [2]

for i:=0 to richedit1.Lines.Count-1 do
begin
 // убери все вызовы Refresh и Repaint
..
 Application.Processmessages; // этот метод "оживит" все формы
end;


 
товарищ вася   (2009-05-18 09:06) [3]

Большое спасибо!



Страницы: 1 вся ветка

Текущий архив: 2009.07.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
2-1242237135
Guest
2009-05-13 21:52
2009.07.05
Программное создание компонентов (Объектов)


15-1241037795
Германн
2009-04-30 00:43
2009.07.05
Очередной "дурацкий вопрос"


2-1242632396
JohnKorsh
2009-05-18 11:39
2009.07.05
Вопрос по ping.


15-1241088234
56m1t
2009-04-30 14:43
2009.07.05
Как прикрутить свой домен с хостингу?


2-1242363170
brother
2009-05-15 08:52
2009.07.05
не верное копирование файла через BlockWrite/BlockRead