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

Вниз

Глючит TChart   Найти похожие ветки 

 
aleks_z ©   (2006-05-11 12:52) [0]

Столкнулся с проблемой - добавляю в цикле (AddXY) 800 значений, они рисуются секунд 5 или даже больше, все программы при этом висят. Может кто сталкивался с таким или может кто подскажет, где собака зарыта?
Может поможет дополнительная информация: данные для добавления получаю по событию из драйвера (DeviceIoControl) в буфер каждые 200мс (для прорисовки точно знаю нужно не больше 16мс). При этом повесил обработчик события OnAfterDraw, в котором рисую на чарте - все рисуется нормально. И еще, когда кликаю мышкой где-нибудь на окне - тоже рисуется быстро. Пробовал вставлять Application.ProcessMessages - как мертвому припарка.


 
DesWind ©   (2006-05-11 14:47) [1]


> При этом повесил обработчик события OnAfterDraw, в котором
> рисую на чарте - все рисуется нормально. И еще, когда кликаю
> мышкой где-нибудь на окне - тоже рисуется быстро. Пробовал
> вставлять Application.ProcessMessages - как мертвому припарка.
>
>

не понял.

А ты померь время различных этапов в твоей программе. Токо недавно накатал программу для просмотра данных TChart-ом, добавляю из таблицы несколько десятков тысяч точек, задержка незаметна.


 
aleks_z ©   (2006-05-11 16:06) [2]

Если не понял, что прорисовывается быстро - то что рисую в OnAfterDraw, серия  с данными тормозит.
Замерял все времена, которые могут на это повлиять, все нормально. Коментирую строку с добавлением в цикле - все быстро. Я вот думаю, может это из-за того, что я жду событие в отдельном потоке и из него же добавляю? Как TChart с многопоточностью, ладит? Кстати, OnAfterDraw рисует в другом потоке...


 
Сергей М. ©   (2006-05-11 16:17) [3]


> Как TChart с многопоточностью, ладит?


Нет, не ладит.
Это визуальный VCL-контрол и обращения к нему (в первую очередь - модифицирующие канву) должны осуществляться в осн.потоке.


> Кстати, OnAfterDraw рисует в другом потоке


Весьма сомнительно


 
aleks_z ©   (2006-05-12 11:02) [4]

Пытаюсь сделать обращение к контролу в основном потоке, посылая свое сообщение из ожидающего потока. Через SendMessage и PostMessage не получается, сообщение отправляется (смотрел Spy), но обработчик не вызывается. Form.Perform работает, но эффект тот же, что был раньше (тормоза). Как-то можно урегулировать этот вопрос?


 
DesWind ©   (2006-05-12 11:13) [5]

Я бы в дополнительном потоке данные закидывал в буфер, а потом из основного потока выгребал их оттуда и отрисовывал.


 
Сергей М. ©   (2006-05-12 12:38) [6]


> сообщение отправляется (смотрел Spy), но обработчик не вызывается


Чем в этот момент занят осн.поток ?



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

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

Наверх




Память: 0.46 MB
Время: 0.01 c
2-1148914109
0_o
2006-05-29 18:48
2006.06.18
Обращение к родительской ветке древа


2-1148982474
paul_k
2006-05-30 13:47
2006.06.18
Наступил на очередные грабли


15-1148670836
Cerberus
2006-05-26 23:13
2006.06.18
Чё то я запутался.


15-1148418317
Andy BitOff
2006-05-24 01:05
2006.06.18
Новый вирус, Уязвимость в Microsoft Word.


2-1149135720
Laymer
2006-06-01 08:22
2006.06.18
Классы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский