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

Windows Forms Discussion :

[C#] manipulation d'un pointeur sur un entier


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 66
    Par défaut [C#] manipulation d'un pointeur sur un entier
    Bonjour,

    voilà g une form avec une progressbar. Quand je clique sur un bouton de cette même form, cela appelle une fonction d'une classe située dans une dll.
    Cette dll étant référencée au projet, je peux donc utiliser ses méthodes comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    instanceClasseDll.Method();
    pour autant bien sûr que je fasse les bonnes directives using.

    Seulement voilà mon problème:

    Cette fameuse methode contenue dans la dll, j'aimerais qu'elle puisse modifier la valeur de la progressbar. L'idée serait de passer à cette méthode un pointeur sur un entier. Comme ca, quand elle le modifierait, ca modifierait aussi dans ma classe principale (Form).

    Mais comment spécifier qu'on met comme valeur de la progressbar, la valeur d'un pointeur ??

    Car si je fais ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    progressBar1.Value=val;
    instanceClasseDll.Method(ref val);
    val est bien modifié par Method, mais la valeur de la progressBar reste celle initialisé au début.

    Merci d'avance de vos réponses

  2. #2
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Intuitivement je dirai n'est-il pas possible de proceder directement à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    instanceClasseDll.Method(ref this.progressBar1.Value);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 66
    Par défaut
    bonne idée, mais apparemment on ne peut pas passer de propriétés en tant que paramètre de référence...

  4. #4
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Mince
    Alors tentons une astuce ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    this.instanceClasseDll.Method(ref val);
    // tu ajoutes systématiquement
    this.ValueChanged(val);
    Ce qui necessite avoir déclarer un delegate
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public delegate void ValueChangedEventHandler(int value);
    Ainsi qu'un evenement lié dans la classe Form concernée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ...public ValueChangedEventHandler ValueChanged;
    Il ne reste plus qu'à capturer l'évènement dans ton appli
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //...
    this.ValueChanged += new ValueChangedEventHandler(this_ValueChanged);
    //...
     
    private void this_ValueChanged(int value)
    {
      this.progressBar1.Value=value;
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2002
    Messages : 66
    Par défaut
    ok mais je comprends pas bien ce que fait ValueChanged ?
    C une fonction d'événement qui existe ?

    [EDIT]
    Si j'ai compris, c'est une fonction que je crée, qui fait que mettre à jour val ?
    j'ai jamais fait de délégués je vais me documenter et essayer comme tu m'as dit.
    Merci
    [EDIT]
    Juste une question...
    comment tu fais pour que quand la valeur est modifiée dans la dll, ca génère l'événement, afin que ca appelle les méthodes dans la file du délégué ?
    [EDIT]
    Yes j'ai enfin tout compris. J'ai implémenté ca et ca fonctionne. Merci bcp !
    a+

  6. #6
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    bouton en bas à gauche stp

  7. #7
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2
    Par défaut Re: [C#] manipulation d'un pointeur sur un entier
    Citation Envoyé par gmonta
    Bonjour,
    si je fais ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    progressBar1.Value=val;
    instanceClasseDll.Method(ref val);
    val est bien modifié par Method, mais la valeur de la progressBar reste celle initialisé au début.
    Bonjour,

    Excusez-moi, dites-moi si je me trompe completement, mais si l'on fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    val=progressBar1.Value;
    instanceClasseDll.Method(ref val);
    progressBar1.Value=val;
    Cela ne fonctionnerait-il pas ?

  8. #8
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2
    Par défaut
    quelqu'un voudrait-il bien me repondre svp :

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

Discussions similaires

  1. Manipulation de pointeur sur tableau dynamique
    Par vincenet dans le forum Débuter
    Réponses: 12
    Dernier message: 09/12/2014, 17h53
  2. Manipulation des pointeurs sur des array of record
    Par kracter56 dans le forum Débuter
    Réponses: 8
    Dernier message: 13/04/2012, 09h58
  3. Manipulation d'un bit sur un entier
    Par SybVicious dans le forum Débuter
    Réponses: 20
    Dernier message: 30/07/2007, 23h31
  4. [allegro]passage de pointeur sur image
    Par Gonath dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 13/12/2003, 18h47
  5. Declaration de fonction retournant un pointeur sur fonction
    Par pseudokifaitladifférence dans le forum C
    Réponses: 5
    Dernier message: 11/08/2003, 19h37

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