Почему при рисовании в компоненте TeeChart ActiveX 5 появляется «Canvas не позволяет рисовать»? - PullRequest
0 голосов
/ 17 сентября 2008

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

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

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

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

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

Неправильно ли я использую эту функцию или я могу считать, что это БАГ в компоненте?

1 Ответ

1 голос
/ 18 сентября 2008

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

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

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

Я бы предложил также попробовать .NET-версию TeeChart. Исходя из моего собственного опыта, у TeeChart .NET нет проблем с памятью, поскольку память управляется платформой .NET.

...