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

Вниз

Помогите решить проблему с ProgressBar   Найти похожие ветки 

 
Evg12   (2003-08-01 23:17) [40]

Проверил, ктати сегодня, это так для информации. Скорость процедур, в которые включено отображение хода с помощью прогресбаров, Gauge, на прямую и очень сильно зависят от типов установленных видеоадаптеров.

Уважаеые. Еще мысли какие-то есть по теме?


 
Юрий Зотов ©   (2003-08-01 23:29) [41]

> Evg12 (01.08.03 23:12)
> Юзер видит как программа вдруг неодиданно исчезает.

Не исчезает, потому что появляется форма с прогрессбаром. Юзер видит, что программа есть и что она работает.


 
Evg12   (2003-08-01 23:38) [42]

Не важно. Только что попробовал сделать Application.MainForm.Hide;
Application.MainForm.Show;
Результат = 0. Скорость не изменилась никак.
Теперь уже не приложу, почему такой тормоз. И как его убрать.


 
Юрий Зотов ©   (2003-08-01 23:46) [43]

Значит, надо определить причину. Поможет Вам, видимо, профайлер.


 
Evg12   (2003-08-02 03:37) [44]

Выяснил в чем причина. Рассмотрел дитально код компонента. Проблема не в нем, а всетаки в прогрессбаре.
Я тут пока состряпал кое-что. Взяв зв основу пример из пакета дельфей 7. Но т.к. не силен в потоках. Наверняка наделал ошибок.
Получилось цикл for i:=0 to 1000000000 c отображением в прогрессбаре через Position:=i на пне III - 700 длится примерно 10 сек.Не зависимо от установленного видеоадаптера.
Сам не особо понимаю как это у меня вышло.

Может кто-то привести его в приличный вид? (всетаки у меня это - первый блин).
Исходник могу слить.


 
Evg12   (2003-08-02 03:40) [45]

Да забыл написать, Прогрессбар Пробовал растянуть на ширину всего экрана 1024 x 768 скорость не меняется никак.


 
Anatoly Podgoretsky ©   (2003-08-02 11:57) [46]

Evg12 (02.08.03 03:37)
Ну так великолепный результат 100 000 000 в секунду, хочешь еще быстрее делай не 1 миллиард отрисовок, а только тысячу, будет занимать всего 10 микросекунд + время расчета


 
Evg12   (2003-08-03 02:39) [47]

Я имел в виду Чтоб на исходник глянули да сказали что я лишнего начудил. Может можно еще проще сделать. Я вот сам не понял до сих пор что делает inherited и еще кое что. И помогли решить еще одну проблему. - Как только форму с прогессбаром, когда выполняется цикл, начинаешь тягать мышкой по столу (под XP) весь процесс замедляется до 10% . Тоесть все нормально работает, пока не трогаешь.


 
Плохиш   (2003-08-03 02:58) [48]

> Evg12
Может алгоритм программы пересмотреть?


 
Evg12   (2003-08-03 04:58) [49]

> Anatoly Podgoretsky
Корректонул код. Свел до 5 сек.
Да понимаешь, дело в том что у меня цикл for i:=0 to 1000000000 do i:=i; Примерно за 5 сек и исполняется.

>Плохиш
Да блин палка о двух концах и обе ударные получается.
Сделаеш без потока - используя mod (выше описано) - неравномерная задержка выходит. Сделаеш через поток, так к форме с прогресбаром дотронешся, или система запустит что-то с приоритетом выше и умирает все....

Еще мысли есть какие-то?


 
BlackKing   (2003-08-06 22:20) [50]

Nu ne znaju, vsegda ispol"zoval GAUGE i nikogda i nigde ne tormozilo, proverjal na raznih mashinah, s raznimi video, dazhe na ochen" slabih. No eto na Delphi3. Mozhet bit" v posledujushih versijah chto-to namudrili? no v D3 vsjo prosto letajet.


 
Igor Popov   (2003-08-07 03:36) [51]

используй Position


 
Alibaba ©   (2003-08-07 04:26) [52]

Я тоже использую Position - и вполне доволен жизнью :)


 
Slym ©   (2003-08-07 08:01) [53]

Попробуй DoubleBuffered...

var i:integer;
begin
ProgressBar1.DoubleBuffered:=true;
ProgressBar1.Position := 0;
ProgressBar1.Step := 1;
ProgressBar1.Max := 1000000;
for I := 1 to 1000000 do begin
ProgressBar1.Stepit;
Application.ProcessMessages;
end;
end;

Отрисовка должна ускорится...



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

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

Наверх




Память: 0.56 MB
Время: 0.015 c
1-68374
AnthreX
2003-08-07 03:38
2003.08.21
Большая таблица


1-68377
tlk
2003-08-07 10:24
2003.08.21
Компонент для работы с dbf-ками без использования BDE . . .


1-68286
danatelo
2003-08-06 23:34
2003.08.21
Произвольный выбор файлов


14-68456
Всеволод Соловьёв
2003-08-04 08:55
2003.08.21
Картынка


3-68159
Salvator
2003-07-28 12:57
2003.08.21
Кеширование данных через Query