2008-09-17 5 views
0

J'utilise le composant TeeChart ActiveX 5 de Steema pour une application dans .NET C#.Pourquoi j'obtiens un "Canvas ne permet pas de dessiner" en dessinant dans le composant TeeChart ActiveX 5?

Je fais quelques dessins en utilisant les méthodes Line(), Rectangle() et Circle() grâce à la propriété "Canvas" du composant.

Mon code de dessin est appelé sur tous les événements OnBeforeDrawSeries() et OnAfterDraw() du composant.

Lorsqu'il n'y a que quelques dessins, cela fonctionne bien. Mais quand la quantité de dessin augmente et après un certain nombre de retraits, j'obtiens un MessageBox avec une erreur "Canvas n'autorise pas le dessin" et l'application se termine .

Je crois que cela est en quelque sorte dû à "surcharger" le composant avec des appels de dessin. Est-ce que j'utilise cette fonctionnalité dans le mauvais sens, ou est-ce que je peux considérer cela comme un BUG dans le composant?

Répondre

1

Je considérerais cela comme un bug parce que j'ai un problème similaire (pas avec Canvas) avec ce composant et la façon dont il gère la mémoire.

Sur certaines machines avec peu de RAM, lorsque nous créons beaucoup de graphique et les affichons, nous recevons une boîte de message avec le message "Stockage insuffisant pour traiter cette commande". Une fois que cette boîte apparaît, il est impossible de fermer cette boîte car si vous cliquez sur OK, la boîte de message est affichée encore et encore. Donc, vous devez tuer l'application pour en faire le tour. Je pense que le bogue est lié au processus de dessin parce que quand nous fermons la boîte de message, le composant essaye de repeindre la région où la boîte de message a été montrée et l'erreur se produit encore. Tout d'abord, vous savez que TeeChart ActiveX est maintenant à la version 8. Peut-être que cette version résoudra ce problème.

Je suggère également d'essayer la version .NET de TeeChart. De ma propre expérience, TeeChart .NET n'a aucun problème de mémoire puisque la mémoire est gérée par le framework .NET.

+0

Malheureusement le TeeChart .NET est trop lent pour mon cas. J'ai besoin de tracer la série avec beaucoup de points et la performance de TeeChart ActiveX est meilleure. – Jonas

Questions connexes