Bonjour,
J’ai un souci de réception des évènements. Voici ce que je tente de faire.
J’a une dll de fonctions appelée dynamiquement. Cette dll était chargée puis libérée chaque fois qu’une des TForm de mon application en avait besoin. Dans cette dll je crée dynamiquement un composant de la jvcl. Le constructeur de ce composant a besoin de la Form parent. Dans mon cas j’avais mis « nil » et ça fonctionnait bien car ce n’est pas un composant visuel. C’est justement ce composant qui exploite des évènements.
Mon application fonctionnait mais j’étais gêné par toutes ces instanciations dynamiques. J’ai donc créé un Unit de fonctions. Les fonctions implémentées permettent d’appeler toutes les méthodes de ma dll. Le chargement dynamique est donc fait une seule fois dans mon application grâce à une méthode d’initialisation, et donc mon composant est créé une seule fois.
Jusque là tout va bien, je compile et j’exécute… et surprise, le composant de la dll ne capture aucun évènement !
J’ai donc tenté de passer la Form principale de mon appli en paramètre du constructeur, mais ça plante au lancement…
Au final je me pose tout un tas de question sur la gestion des évènements dans delphi :
- pourquoi le composant de la dll ne capte plus d’évènement depuis que la dll n’est plus chargée par un TForm mais par une Unité de fonction ?
- est ce qu’une fenêtre modale empêche les autres fenêtres se trouvant derrière de capturer leurs propres évènements ?
En bref, pourquoi ça ne marche pas![]()
Partager