3 votes

Comment faire en sorte que mes contrôles ActiveX apparaissent dans la boîte à outils de Visual Studio (et autres) ?

J'ai écrit une série de contrôles ActiveX en Delphi pour les utiliser dans d'autres environnements de développement (comme Visual Studio ou dBASE pour Windows, par exemple).

J'ai utilisé les assistants ActiveX fournis dans le cadre de l'IDE RAD Studio pour générer les "liens" ActiveX (faute d'un meilleur terme) pour mes contrôles basés sur la VCL, mais il semble qu'ils ne produisent pas la source nécessaire pour les faire apparaître sur les palettes de composants de l'IDE.

D'ordinaire, dans ces IDE (Visual Studio et dBASE Plus), il me suffit d'importer un contrôle ActiveX pour qu'il apparaisse dans leur boîte à outils (leur version d'une palette de composants) avec l'icône qu'ils ont définie.

Eh bien, mes propres contrôles ActiveX produits en Delphi ne le font pas (ils s'importent très bien, mais n'apparaissent pas sur la palette/boîte à outils), et j'ai parcouru Google pour essayer de trouver une solution au cours des deux dernières semaines.

Ayant échoué lamentablement, j'ai décidé de poser la question ici :

Comment faire en sorte que mes contrôles ActiveX apparaissent dans la boîte à outils de Visual Studio (et autres) ?

Merci pour tout conseil/suggestion.

EDIT : Quelques informations supplémentaires...

J'ai essayé de faire cela avec XE2 et XE3, et cela a échoué à chaque fois... cependant, lorsque je fais la même chose (en utilisant les assistants) avec Delphi 2007, l'icône du composant apparaît dans la palette/boîte à outils des autres IDE comme souhaité. Cela signifie que le problème a été introduit quelque temps après Delphi 2007, et est probablement le résultat d'une modification RTL/VCL.

2voto

LaKraven Points 3815

Mes recherches ont conclu que les versions Unicode de Delphi (2009 à XE3) ne génèrent pas le balisage correct pour les contrôles ActiveX à l'aide des assistants fournis.

De plus, les modifications apportées à la RTL et à la VCL depuis Delphi 2007 signifient que, même si vous produisez manuellement le balisage source nécessaire, vos contrôles ne se comporteront pas correctement lorsqu'ils seront intégrés dans des applications non Delphi (telles que Visual Studio et dBASE Plus). Cela est dû en grande partie au fait que la VCL présume qu'un contrôle conforme à la VCL doit être intégré dans une application non Delphi. Parent où la mise à jour des propriétés telles que ParentFont entraînera une erreur de violation d'accès.

Dans mon cas, la solution a consisté à produire les contrôles ActiveX exportés dans Delphi 2007 (la dernière version étant la plus récente pour être équitable avec les autres consommateurs de contrôles ActiveX).

J'espère que ces informations vous épargneront le long et ennuyeux processus de recherche des faits que j'ai dû suivre pour arriver à cette conclusion.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X