Почему я получаю сообщение «Canvas не позволяет рисовать» при рисовании в компоненте TeeChart ActiveX 5?

Я использую компонент Steema TeeChart ActiveX 5 для приложения на .NET C#.

Я делаю несколько рисунков, используя методы Line(), Rectangle() и Circle() через свойство «Canvas» компонента.

Мой код для рисования вызывается при каждом событии OnBeforeDrawSeries() и OnAfterDraw() компонента.

Когда рисунков мало, все работает нормально. Но когда объем отрисовки увеличивается и после определенного количества перерисовок, я получаю MessageBox с ошибкой «Холст не позволяет рисовать» и приложение закрывается.

Я считаю, что это как-то связано с «перегрузкой» компонента вызовами рисования.

Я неправильно использую эту функцию или могу считать это ОШИБКОЙ в компоненте?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
1 696
1

Ответы 1

Я считаю это ошибкой, потому что у меня есть аналогичная проблема (не с Canvas) с этим компонентом и тем, как он управляет памятью.

На некоторых машинах с небольшим объемом оперативной памяти, когда мы создаем много графиков и отображаем их, мы получим окно сообщения с этим сообщением «Недостаточно памяти для обработки этой команды». После появления этого окна его невозможно закрыть, потому что, если вы нажмете OK, окно сообщения будет отображаться снова и снова. Итак, вам нужно убить приложение, чтобы получить от него удовольствие. Я думаю, что ошибка связана с процессом рисования, потому что, когда мы закрываем окно сообщения, компонент пытается перерисовать область, в которой отображалось окно сообщения, и ошибка возникает снова.

Во-первых, вы знаете, что TeeChart ActiveX теперь имеет версию 8. Возможно, эта версия решит эту проблему.

Я бы посоветовал также попробовать .NET-версию TeeChart. По моему собственному опыту, TeeChart .NET не имеет проблем с памятью, поскольку памятью управляет платформа .NET.

К сожалению, TeeChart .NET слишком медленный для моего случая. Мне нужно построить серию с большим количеством точек, и производительность TeeChart ActiveX лучше.

Jonas 22.09.2008 22:00

Другие вопросы по теме