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

Caml Discussion :

[lablgtk2] problème d'évaluation lors d'un callback


Sujet :

Caml

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 44
    Points : 23
    Points
    23
    Par défaut [lablgtk2] problème d'évaluation lors d'un callback
    voila un exemple de code simple pour vous faire comprendre mon problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    let register_multiple f = List.map (fun callback -> (f ~callback))
     
    let affiche str ()= print_endline str
     
    let affiche2 ()= print_endline entry#text
     
    let button_ok=
      let button=GButton.button
      ~stock:`OK
      ~packing:hbox_scroll1#add () in register_multiple button#connect#clicked [affiche entry#text;affiche2];
      button
    quand je clique sur mon bouton, la première fonction me renvoie une chaine vide alors que la deuxième m'affiche ce que j'ai entré rééllement dans la zone de texte.
    Comment puis-je remedier à ce problème?

  2. #2
    Membre éprouvé
    Avatar de Cacophrene
    Homme Profil pro
    Biologiste
    Inscrit en
    Janvier 2009
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Biologiste

    Informations forums :
    Inscription : Janvier 2009
    Messages : 535
    Points : 1 125
    Points
    1 125
    Par défaut
    Bonjour !

    Pour le coup ce n'est pas un problème lié à LablGTK. Dans ton application partielle de la fonction affiche, l'argument entry#text est évalué au moment de la création de button_ok, c'est-à-dire bien avant que son contenu soit modifié par l'utilisateur. Si tu veux quand même faire une application partielle, tu peux passer le widget lui-même en argument :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    let affiche entry () = print_endline entry#text
    Cordialement,
    Cacophrène

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

Discussions similaires

  1. problème de cache lors du chargement d'applet
    Par ellocin dans le forum Applets
    Réponses: 4
    Dernier message: 05/04/2007, 12h31
  2. Réponses: 2
    Dernier message: 04/10/2005, 15h13
  3. Problème avec OpenEx lors d'un enregistrement
    Par jessy82 dans le forum MFC
    Réponses: 1
    Dernier message: 05/04/2005, 19h44
  4. Réponses: 9
    Dernier message: 04/03/2005, 13h58
  5. [VC++6][DX9] Problème de thread lors d'un blit ...
    Par grandjouff dans le forum DirectX
    Réponses: 2
    Dernier message: 12/06/2003, 22h22

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