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 :

TNotifyEvent dans une DLL


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 13
    Par défaut TNotifyEvent dans une DLL
    Bonjours,
    Je cherche de l'aide pour écrire une DLL qui implémente un Object qui doit notifier l'application Hôte d'un évènement quelconque. je bloque au niveau de l'évènement, je ne sais pas comment le décloncher pour faire réagir l'application hôte.

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Delphi ne permet pas de partager des objets en EXE et DLL

    mais une simple fonction Callback fera l'affaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    // côté exe
    type
      TCallBack = procedure(param...);
     
    function SetCallBack(ACallBack: TCallBack); external 'LADLL.DLL';
     
    procedure OnCallBack(param...);
    begin
      ...
    end;
     
    begin
      SetCallBack(OnCallBack);
    end;
     
    // côté DLL
    var
      CallBack: TCallBack;
    function SetCallBack(ACallBack: TCallBack); export;
    begin
      CallBack := ACallBack;
    end;
     
    procedure TMonObject.Notification;
    begin
      CallBack(...);
    end;
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 940
    Billets dans le blog
    6
    Par défaut
    pourquoi ne pas utiliser une fonction CallBack passée au constructeur de l'objet ?

    sinon, utiliser un Message prédéfini style WM_USER+1234
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  4. #4
    Membre averti
    Inscrit en
    Juin 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 13
    Par défaut
    Bonjours,
    merci pour votre réponse, j'ai oublié de vous dire que la DLL que je veux implémenter est un plugin qui s'enregistre auprès de l'application hôte, je veux que ce plugin informe l'application hôte de son état via un évènement que le hôte doit intercepter. je vais tester votre solution et je vous tiens au courant. Si vous avez d'autres propositions je prends. Merci énormément.

  5. #5
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par roprog Voir le message
    Bonjours,
    merci pour votre réponse, j'ai oublié de vous dire que la DLL que je veux implémenter est un plugin qui s'enregistre auprès de l'application hôte, je veux que ce plugin informe l'application hôte de son état via un évènement que le hôte doit intercepter. je vais tester votre solution et je vous tiens au courant. Si vous avez d'autres propositions je prends. Merci énormément.
    Dans ce cas, le mieux est d'utiliser une Interface comme expliqué dans mon livre "Delphi 7 Studio" dans le chapitre 19 qui est justement consultable en ligne.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. [MDI][DLL] Enfant MDI dans une dll
    Par Pascal Jankowski dans le forum Composants VCL
    Réponses: 5
    Dernier message: 02/04/2004, 07h41
  2. [VStudio 6] pb avec fonctions dans une DLL
    Par MogDeChNord dans le forum MFC
    Réponses: 8
    Dernier message: 08/01/2004, 08h57
  3. [BP7] Problème chargement de ressource dans une DLL
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 11
    Dernier message: 26/07/2003, 21h36
  4. PB avec "self" dans une dll
    Par DiJiRiDouS dans le forum Langage
    Réponses: 2
    Dernier message: 21/02/2003, 09h32
  5. [VB6]Passage d'un tableau dans une DLL écrite en delphi
    Par flash dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/09/2002, 10h15

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