IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Gestion des évènements et dll


Sujet :

Langage Delphi

  1. #1
    Membre actif Avatar de declencher
    Inscrit en
    Mai 2003
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 441
    Points : 251
    Points
    251
    Par défaut Gestion des évènements et dll
    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

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Citation Envoyé par declencher Voir le message
    - est ce qu’une fenêtre modale empêche les autres fenêtres se trouvant derrière de capturer leurs propres évènements ?
    Oui, il suffit d'étudier le code du "ShowModal" pour se rendre compte que c'est un court-circuit total de la boucle run, et disons que cela limite les interactions avec les autres fenêtres (souris, clavier, ...), les évèmenets de socket, de dessin, et autre sont normalement conservés ...

    Sinon, il faut savoir qu'une DLL chargée plusieurs fois dans la même application est en fait la même instance (il y a un compteur de référence), ... tu pouvais très bien géré dans ta DLL, une sorte de gestionnaire de mémoire partagée ...

    Maintenant, c'est dans la DLL que tu associe les Evènements de tes Form, genre OnClose, OnClick ??? Ouch !

    lit donc ce sujet "DLL String Pourquoi ça marche sans BORLNDMM.DLL", tu noteras que je n'avais pas de soucis, mais j'étais surpris de ne pas avoir d'erreur, alors que j'aurais dû , tu peux faire une recherche sur les DLL sur le forum, c'est souvent un problème lorsque l'on ne prend pas soin de respecter les bases, en fait le meilleur exemple c'est de ne faire que des fonctions qui ressemble à des API windows avec PChar, et on se rend compte à combien on se limite, ... c'est pour cela que fut inventé le modèle COM qui justement intégre tout un procédé pour la gestion des évènements ...

Discussions similaires

  1. [XML] [EXPAT] xml_parse et la gestion des événements...
    Par Herode dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 05/02/2006, 20h59
  2. Gestion des évènements Netscape 7.0
    Par RATHQUEBER dans le forum Autres langages pour le Web
    Réponses: 6
    Dernier message: 19/12/2005, 16h26
  3. Problème avec la gestion des événements
    Par CynO dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 10h07
  4. [JTable] gestion des événements
    Par soulhouf dans le forum Composants
    Réponses: 4
    Dernier message: 19/08/2005, 13h21
  5. Gestion des évènements lors d'un clique sur une image.
    Par yoghisan dans le forum Débuter
    Réponses: 7
    Dernier message: 23/06/2005, 19h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo