-
Darvin (03.12.13 17:49) [0]Здравствуйте!
Есть компонент TChart, есть в нем TLineSeries (одна).
В цикле я добавляю элементы в эту линию:
Series.Add ( Value, '', clRed );
Сначала все нормально. Затем, через какое-то время начинаются тормоза, за единицу времени добавляется все меньшее количество элементов.
Также, при очистке линии:
if Series.Count > 0 then
Series.Clear;
Скорость добавления не восстанавливается.
Я знаю, что с динамическими массивами лучше работать, выделяя им память сразу, а не постепенно. Это будет быстрее. А если неизвестно, сколько элементов будет в массиве, то лучше выделять сразу большими кусками во избежание тормозов.
Думаю, что здесь проблема похожая. Но, если памятью в динамическом массиве управлять можно, то памятью в чарте, я не знаю, как. Подскажите, пожалуйста! -
brother © (03.12.13 17:51) [1]это во время добавления или после?
-
Darvin (03.12.13 17:58) [2]Элементы добавляются постоянно. Тормоза появляются, когда добавлено очень много значений, несколько тысяч
-
DimaBr © (04.12.13 09:55) [3]Внимание! Здесь обсуждаются вопросы, связанные с разработкой компонентов, редакторов свойств, редакторов компонентов и экспертов IDE.
Вопросы по поиску и использованию готовых компонентов, редакторов или экспертов являются нарушением тематики и могут быть удалены. -
>когда добавлено очень много значений, несколько тысяч
И, конечно же, пользователь просто обязан всех их видеть?
У него пикселей на экране столько не хватит:) -
brother © (04.12.13 17:15) [5]> несколько тысяч
Вы сами ответили на свой вопрос...
Предложу - загружать усредненные значения, по например, каждой 10ке... -
Darvin (13.12.13 15:21) [6]Спасибо всем. Переписал компонент, в котором в список элементы добавляются поблочно.
По поводу усреднения при выводе буду думать, если заказчик будет недоволен быстротой работы этой реализации