Я использую компонент Steema TeeChart ActiveX 5 для приложения на .NET C#.
Я делаю несколько рисунков, используя методы Line(), Rectangle() и Circle() через свойство «Canvas» компонента.
Мой код для рисования вызывается при каждом событии OnBeforeDrawSeries() и OnAfterDraw() компонента.
Когда рисунков мало, все работает нормально. Но когда объем отрисовки увеличивается и после определенного количества перерисовок, я получаю MessageBox с ошибкой «Холст не позволяет рисовать» и приложение закрывается.
Я считаю, что это как-то связано с «перегрузкой» компонента вызовами рисования.
Я неправильно использую эту функцию или могу считать это ОШИБКОЙ в компоненте?





Я считаю это ошибкой, потому что у меня есть аналогичная проблема (не с Canvas) с этим компонентом и тем, как он управляет памятью.
На некоторых машинах с небольшим объемом оперативной памяти, когда мы создаем много графиков и отображаем их, мы получим окно сообщения с этим сообщением «Недостаточно памяти для обработки этой команды». После появления этого окна его невозможно закрыть, потому что, если вы нажмете OK, окно сообщения будет отображаться снова и снова. Итак, вам нужно убить приложение, чтобы получить от него удовольствие. Я думаю, что ошибка связана с процессом рисования, потому что, когда мы закрываем окно сообщения, компонент пытается перерисовать область, в которой отображалось окно сообщения, и ошибка возникает снова.
Во-первых, вы знаете, что TeeChart ActiveX теперь имеет версию 8. Возможно, эта версия решит эту проблему.
Я бы посоветовал также попробовать .NET-версию TeeChart. По моему собственному опыту, TeeChart .NET не имеет проблем с памятью, поскольку памятью управляет платформа .NET.
К сожалению, TeeChart .NET слишком медленный для моего случая. Мне нужно построить серию с большим количеством точек, и производительность TeeChart ActiveX лучше.