Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];

Вниз

Помогите решить проблему с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.01 c
3-68179
AkaSaint
2003-07-28 18:28
2003.08.21
Реализация Delta-пакета от сервера приложений к клиенту


1-68303
Sirakuz
2003-08-06 16:19
2003.08.21
2 раза Paste в MSWord


9-68140
Кен
2003-02-20 07:20
2003.08.21
Glscene Как сохранить в текст GLCamera1.TargetObject.Direction и


8-68419
Romeo5
2003-04-22 19:01
2003.08.21
Рисование Form.Canvas


3-68176
arous
2003-07-28 00:59
2003.08.21
Paradox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский