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

WinDev Discussion :

AutomationEvenement: reconnaître l'objet automation qui a déclenché l'événement ? [WD12]


Sujet :

WinDev

  1. #1
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut AutomationEvenement: reconnaître l'objet automation qui a déclenché l'événement ?
    Bonjour,

    A partir d'une DLL ActiveX, j'alloue plusieurs objets automation.
    Ces objets déclenchent un événement nommé Pulse.

    Pour réagir au déclenchement de l'événement Pulse par ces objets automations, je branche sur ces événements une unique procédure de mon application Windev: la procédure Pulsar_Pulse.

    J'utilise la fonction AutomationEvénement(): http://doc.pcsoft.fr/fr-FR/?3013059&...ement-fonction

    Pour illustrer, voici une idée générale du code utilisé:
    Code WLangage : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    oPulsarA est un objet Automation "MaDLL.Pulsar"
    oPulsarB est un objet Automation "MaDLL.Pulsar"
    oPulsarC est un objet Automation "MaDLL.Pulsar"
     
    AutomationEvénement("Pulsar_Pulse",oPulsarA,"Pulse")
    AutomationEvénement("Pulsar_Pulse",oPulsarB,"Pulse")
    AutomationEvénement("Pulsar_Pulse",oPulsarC,"Pulse")

    La procédure Pulsar_Pulse est exécutée, suite au déclenchement d'un événement par n'importe lequel des objets oPulsarA, oPulsarB ou oPulsarC.

    Voilà mon problème:
    Dans la procédure Pulsar_Pulse comment faire pour reconnaître l'objet automation qui a déclenché l'événement ?

    Si on compare avec la gestion des événements Windows (messages):
    _ Il existe une pseudo variable _EVE qui donne accès aux paramètres de l'événement.
    _ On peut aussi utiliser le mot-clé MoiMême qui désigne le champ (ou la fenêtre) pour lequel on gère l'événement.

    Mais je ne vois rien d'équivalent pour les événements automation.

    Merci pour votre aide.
    _

  2. #2
    Membre confirmé
    Profil pro
    Freelance
    Inscrit en
    Avril 2003
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Avril 2003
    Messages : 393
    Points : 492
    Points
    492
    Par défaut
    Salut JBO,

    Je ne pense pas que l'on puisse retrouver le nom de l'objet. Mais si une méthode existe, je veux bien la connaître.
    A bientot
    Vince

  3. #3
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 344
    Points : 3 860
    Points
    3 860
    Par défaut
    Salut à toi,

    Une petite idée comme ça qui me vient, ne serait-il pas possible d'utiliser la compilation dynamique sur la procédure Pulsar_Pulse pour dupliquer cette procédure par le nombre d'objets Automation créés ?

    Cad :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    sSource est chaîne
    POUR i = 1 A 3
    	// Création de l'objet
    	sSource = "oPulsar" + i + " est un objet Automation ""MaDLL.Pulsar"""
    	Compile("InitPulsar_Pulse" + i, sSource)
    	Exécute("InitPulsar_Pulse" + i)
     
    	// Création de la procédure liée à l'objet
    	sSource = "monCode Pulsar_Pulse avec un ChaineConstruit pour lui donner le bon objet à traiter"
    	Compile("Pulsar_Pulse" + i, sSource)
    	Exécute("Pulsar_Pulse" + i)
     
    	AutomationEvénement("Pulsar_Pulse" + i, {"oPulsar" + i, indVariable},"Pulse")
    FIN
    Pour info, je ne sais absolument pas si mon idée est viable, mais si cela fait avancer le schmilblick, tant mieux ^^

  4. #4
    Membre expérimenté Avatar de klbsjpolp
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 065
    Points : 1 322
    Points
    1 322
    Par défaut
    Salut, aucune technique connue ici non plus. La dernière fois, j'avais créé 1 fonction par objet et elle appelait la fonction de traitement avec le bon objet en paramètre. Ce qu'on devrait pouvoir faire à la base finalement.

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour et merci pour vos réponses !

    Il n'y a donc pas de mot-clé magique, alors je me débrouillerais autrement.

    Comme je n'ai que quelques objets automation, j'opte pour la solution de klbsjpolp, qui n'est rien d'autre qu'une "procédure-enrobage" spécifique à coder pour chacun des objets.

    Mais, si j'avais de nombreux objets à gérer, je suivrai sans doute l'idée de Lo² (même si ça ressemble à du schmilblick-bricolage ).
    C'est à dire:
    (1) référencer les objets automation dans un tableau et,
    (2) utiliser la compilation dynamique pour générer autant de "procédures-enrobage".

    Encore merci pour vos réponses.
    _

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. le bouton qui a déclenché l'événement
    Par adelneo dans le forum Langage
    Réponses: 11
    Dernier message: 04/04/2011, 11h15
  2. Réponses: 2
    Dernier message: 15/03/2006, 10h13
  3. [D4] Tps traitement : Objet Automation dans Library
    Par morgiou dans le forum Langage
    Réponses: 2
    Dernier message: 12/01/2006, 17h49
  4. [Swing][graphics]objets graphiques qui s'effacent
    Par TylerKnoxx dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 11/08/2004, 16h36

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