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

VB.NET Discussion :

Passer un argument dans un Timer (ou un control)


Sujet :

VB.NET

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut Passer un argument dans un Timer (ou un control)
    Bonjour,

    J’aimerais vous poser une question car cela fait quelque temps que je bloque sur un problème.

    Voici mon projet en bref : Je dois envoyer à intervalle de 2 secondes des demandes sur un automate et ce, en UDP.

    L’envois des trames etc ne pose aucun soucis. Je coince au niveau du Timer que je souhaite utiliser.

    Ainsi, j’ai pensé utiliser un Timer qui envois, à l’adresse IP de l’automate, une trame toutes les 2 secondes, mais je ne parvient pas à passer un argument (en l’occurrence l’adresse IP) au Timer.

    J’ai également tenter de créer mon propre événement, ainsi qu’un délégué associé, mais dans ce cas là, il m’est impossible de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addHandler  monTimer.elapsed, monDelegué
    car monDelegué « ne peut etre convertis en System.timers.elaspedEventHandler »

    Donc, ma question : est-il possible de passer un argument à la procédure associée à monTimer ?

    Qu’elle serait la meilleur méthode pour mon problème ?

    Merci pour vos réponses

  2. #2
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    La premiere chose qui me vient à l'esprit, c'est d'utiliser la propriete .tag du timer pour envoyer ton argument.
    Il y a d'autres techniques, comme specifier un Public Data lisible par tout le code.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Par défaut
    Sinon pourquoi pas utiliser un autre objet dont tu modifie / obtient la valeur dans ton timer (la valeur serait donc une adresse IP)

    Je débute donc c'est peut etre pas la meilleure solution mais autant essayer d'aider ^_^

  4. #4
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut
    tout d'abord, je vous remercie pour vos réponses,

    pour ce qui est du "Public Data lisible", je ne sais pas trop à quoi tu veux faire référence, mais je ne peux pas mettre une variable globale contenant les adresses IP, vu que je ne les connais pas à l'avance !

    Je vais me renseigner sur la propriété .tag que je n'ai encore jamais utilisé ...



    Sinon pourquoi pas utiliser un autre objet dont tu modifie / obtient la valeur dans ton timer (la valeur serait donc une adresse IP)
    Mon timer doit envoyer tous les 'tick' une trame. Pour cela je requiers une adresse IP qui doit être passé en arguments à ma méthode d'envois des données .

  5. #5
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Par défaut
    Hum, je pense être sur la bonne voie avec la propriété tag du controle Timer.

    Pour info, la propriété tag peut s'appliquer à n'importe quelle control, elle permet en outre de passer des arguments de type object.
    Elle peut aussi être redimensionnée pour passer un tableau d'object !

    Un exemple que j'ai trouvé :

    http://msdn.microsoft.com/fr-fr/libr...ag(VS.80).aspx


    Voici ce que j'ai fais, ca peut toujours servir à d'autres :
    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
    29
    30
     
    dim monTimer as new System.windows.forms.Timer()
    dim done as boolean = false
    dim monAdresseIP as String = "192.168.0.1"
    'Ajout de l'évènement associé au Tick du timer
    addHandler monTimer.tick, addressOf maMethodeTimer  
     
    monTimer.interval = 5000  '5 secondes 
     
    'Ici vous pouvez mettre l'objet à passer en argument
    monTimer.Tag = monAdresseIP
    monTimer.enable = true
    monTimer.start()
     
    while not done
    Application.DoEvents()    
    end while 
     
     
    'Je recupère ensuite mon adresse ip dans ma méthode
    'Je doit caster ma source en Timer
    'Je dois caster le tag de la source en String
     
    private sub maMethodeTimer  (ByVal source as Object, Byval e as EventArgs)
    Dim timer as new System.windows.forms.Timer()
    timer = source
    dim monAdresseIP  as String = TryCast(timer.tag, String)
     
    '... suite du programmae
    end sub
    Merci en tout cas

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

Discussions similaires

  1. Comment passer un argument dans une fonction
    Par DeezerD dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 22/01/2008, 18h13
  2. Passer plusieurs arguments dans un même lien
    Par The Molo dans le forum Langage
    Réponses: 3
    Dernier message: 24/04/2007, 15h00
  3. [Cookies] passer des arguments dans un form
    Par killer_instinct dans le forum Langage
    Réponses: 2
    Dernier message: 19/04/2007, 22h36
  4. Réponses: 4
    Dernier message: 16/02/2007, 11h51
  5. [Struts] Passer un argument dans un property
    Par Malaussene dans le forum Struts 1
    Réponses: 4
    Dernier message: 07/09/2004, 10h11

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