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

Вниз

VCL скорость работы   Найти похожие ветки 

 
B&W   (2009-09-16 19:05) [0]

Вот есть цикл вида:

for i:=0 to 70000 do
begin
Application.ProcessMessages;
//тело цикла
end;

если я ввожу внутрь цикла строку
label1.caption:="ход работы "+inttostr(i)+"/70000";
то скорость работы резко снижается... и этот лабел жутко мигает... подскажите пожалуйста, можно ли с этим что-то сделать? и как?
заранее спасибо!


 
anonims   (2009-09-16 19:21) [1]

if i mod 100 =0 then
label1.caption:="ход работы "+inttostr(i)+"/70000";


 
sniknik ©   (2009-09-16 19:24) [2]

> можно ли с этим что-то сделать?
не заниматься идиотизмом и выводить только то, что человек реально может заметить.


 
sniknik ©   (2009-09-16 19:25) [3]

> if i mod 100 =0 then
мало, хотя бы на 10000.


 
B&W   (2009-09-16 19:34) [4]

Спасибо! буду пробовать


 
Игорь Шевченко ©   (2009-09-16 21:20) [5]

нaрод использует Gauge или ProgressBar и не парит мозг


 
TUser ©   (2009-09-16 22:57) [6]

Это раотает вот как. Когда ты присваиваешь значение капшану, соотвествующему окну (твоей формы) посылается сообщение на перерисовку. Это очень медленная операция, по сравнению с другими. Поэтомуесть смысл присваивать такое значение не на каждой итерации цикла, а весьма редко, например, на каждой тысячной: if (i mod 1000) = 0 then ...


 
Германн ©   (2009-09-17 01:27) [7]


> нaрод использует Gauge или ProgressBar и не парит мозг
>

Хм. "Народ" использует их внутри цикла как в сабже?


 
KilkennyCat ©   (2009-09-17 04:37) [8]

конечно нет, вне цикла. это удобно и выглядит очень быстро: сначала 0%, а потом сразу 100%.


 
Омлет   (2009-09-17 09:59) [9]

Выводив целых процентах, мерцать не будет.


 
Anatoly Podgoretsky ©   (2009-09-17 12:17) [10]

> sniknik  (16.09.2009 19:25:03)  [3]

А лучше на 100 000


 
sniknik ©   (2009-09-17 12:27) [11]

> А лучше на 100 000
однозначно.
чем меньше усилий на "нагрев проца" сомнительными прорисовками и принудительными этому "процессингу" (при том, что человек этих прорисовок даже не заметит) тем лучше.


 
Anatoly Podgoretsky ©   (2009-09-17 12:34) [12]

По уму рисовать только если длина увеличится на один пиксель или более, иначе действительно сомнительно.



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

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

Наверх




Память: 0.49 MB
Время: 0.012 c
2-1253171778
Б
2009-09-17 11:16
2009.11.08
Русский текст в консольном приложении.


8-1198623882
POMbI4
2007-12-26 02:04
2009.11.08
Реализация алгоритма слежения за объектом.


2-1253608071
Ирг
2009-09-22 12:27
2009.11.08
Как объединить идентичные таблицы ADO 12 штук


1-1222428416
Gurd
2008-09-26 15:26
2009.11.08
Синхронизация двух ScrollBox


2-1253175802
Роман
2009-09-17 12:23
2009.11.08
как связать таблице по ключевому полю средсвами делфи