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

Prolog Discussion :

[XPCE] Retrouver label à partir de son nom & changer son image en cliquant sur bouton


Sujet :

Prolog

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Points : 55
    Points
    55
    Par défaut [XPCE] Retrouver label à partir de son nom & changer son image en cliquant sur bouton
    Salut, j'ai un programme avec interface graphique en XPCE qui fonctionne pas mal, et j'affiche principalement des labels avec des images dedans.
    Mais j'aimerais maintenant pouvoir retrouver un label à partir de son nom, et changer son image, par exemple en cliquant sur un bouton...

    Pour l'instant mes labels sont imbriqués dans plusieurs dialog_group(labels, group), mais je ne sais pas si j'ai besoin de leur nom pour retrouver un label donné...

    J'ai déjà regardé l'exemple du jeu du chocolat (http://www.developpez.net/forums/sho...ight=chocolat), dont le code doit surement répondre à mes deux questions, mais c'est un peu trop compliqué pour moi...

    (Sinon, pour information, j'ai trouvé une FAQ pour XPCE, qui pourra peut-être interesser quelques personnes : http://www.hio.hen.nl/faq/xpce-programming.html)

    Merci d'avance pour votre aide !!

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Merci pour le lien, je ne connaissais pas
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    Bon j'ai trouvé une solution pour la deuxième partie de mon problème, à savoir modifier l'image d'un label :

    Avant, j'instanciais mes labels ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    send(MonLabelGroup, append, label(NomDuLabel, image('image.jpg')), right).
    Et je n'arrivais à rien.

    Maintenant je fais ça et ça marche aussi bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    send(MonLabelGroup, append, new(ObjetLabel, label(NomDuLabel)), right),
    send(ObjetLabel, selection, image('image.jpg')).
    Il faut donc avoir "l'objet" du label pour en modifier son image, ce qui semble logique...

    Lorsque j'ai l'objet et que je veux récupérer le nom, juste pour tester, ça fonctionne ! Pour ça je fais évidemment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    get(ObjetLabel, name, X), write(X).
    En revanche, je n'arrive toujours pas à récupérer un objet à partir de son nom :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    get(X, name, NomDuLabel).
     
    ERROR: Arguments are not sufficiently instantiated
    ^  Exception: (16) get(_L13456, name, NomDuLabel) ?
    Si quelqu'un a une idée...

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Si je me souviens bien essaie ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	get(Object, member(Name), X),
    pour obtenir le composant X de nom Name de l'objet Object.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Points : 55
    Points
    55
    Par défaut
    Excellent, en remplaçant Object par le nom du groupe de label, ça fonctionne impec !

    Merci beaucoup !!

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

Discussions similaires

  1. [OL-2010] Extraire une seule pièce jointe en pdf et changer son nom
    Par cointel dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 28/12/2014, 02h42
  2. [PPT-2007] Aller sur une diapositive d'après son nom et pas son numéro
    Par Carlos31 dans le forum Powerpoint
    Réponses: 5
    Dernier message: 20/12/2014, 20h27
  3. Réponses: 1
    Dernier message: 19/07/2013, 16h26
  4. Réponses: 3
    Dernier message: 14/04/2009, 18h09
  5. Retrouver le type d'une property à partir de son nom
    Par Invité dans le forum Langage
    Réponses: 6
    Dernier message: 18/04/2008, 18h55

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