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 les click


Sujet :

Prolog

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut XPCE les click
    bonjour ,

    j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    send(@g10, recogniser,click_gesture(left, '', double, message(@g10, fill_pattern, colour(green)))),
    qui fonctionne trés bien mon problème j'aimerais renvoyer a une fonction la postiton g - 10 comment faire ?

  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
    On peut obtenir les coordonnées d'un objet par get(@g10,x X), get(@g10, y, Y) ou get(@g10, position, Point)
    "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 régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    merci pour ta réponse je me suis mal exprimer désoler

    je voudrais s'avoir comment faire la chose suivante


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
     
    send(@g10, recogniser,click_gesture(left, '', double, message(@g10, getClick(@g10,g,10): ))),
     
    getClick(Objet,COlone,Ligne):- send(Objet, fill_pattern, colour(red)),write('colone :'),write(COlone),write(' ligne : '),write(Ligne),nl.
    souci il me dis que getClick n'existe pas

  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
    Essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    send(@g10, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,g,10) ))),
    "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 régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    Un grand merci ,

    une dernière petite question comment remplacer mon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       read(Couleur-PositionC-PositionL),
    par le fet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    getClick(Objet,COlone,Ligne):- send(Objet, fill_pattern, colour(red)),write('colone :'),write(COlone),write(' ligne : '),write(Ligne),nl.
     
    send(@g10, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,g,10) )),
    merci d'avance

    j'ai un peu de mal avec :

    http://jfoutelet.developpez.com/arti...e=page_4#LIV-I

  6. #6
    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
    Citation Envoyé par mimi6060 Voir le message
    Oui ce n'est pas facile d'utilisation, moi je ne m'en sers jamais. Je l'avais indiqué car ça existe mais c'est tout !
    Je n'ai pas compris la première question
    "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

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    j'ai un programme prolog avec un read
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     read(Couleur-PositionC-PositionL),
    j'aimerais remplace ce read par une instruction qui dis attend un des clique suivant avant de continuer +- comme cela

    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
     
     
    attendreClick(Ligne,Colone,j):-
                      send(@e7, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,e,7) )),
    		  send(@e8, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,e,8) )),
    		  send(@e9, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,e,9) )),
    		  send(@e10, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,e,10) )),
     
    		  send(@f1, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,f,1) )),
    		  send(@f2, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,f,2) )),
    		  send(@f3, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,f,3) )),
    		  send(@f4, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,f,4) )),
    		  send(@f5, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,f,5) ))
                     getClick(Objet,Ligne,Colone).
     
     
    getClick(Objet,COlone,Ligne):- send(Objet, fill_pattern, colour(red)),write('colone :'),write(COlone),write(' ligne : '),write(Ligne),nl.

  8. #8
    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
    Je ne suis pas sur d'avoir bien compris ce que tu recherches, tu veux remplacer toute ta suite de send par une seule instruction qui regrouperait tout ?
    "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

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    c'est un puissance 4 je veux surtout que le programme attendent que un des send se déclenche avant que l'ordinateur joue son tour
    avec le read il attendais que je rentre au clavier avant de continuer a jouer son pion ici je veux pareil avec les send

  10. #10
    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
    Je crois que je commence à comprendre...
    Il faut declarer une classe d'objet, en l'occurence dans ton cas, une classe "cell" qui réagira au clic de souris. Tu crées ton plateau de puissance 4 en créant tout une suite de cell.
    Inspire toi de ce code : http://www.rosettacode.org/wiki/Honeycombs#Prolog, celui qui commence à
    :- pce_begin_class(cell, path, "The honneycomb cell").
    "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

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    quel sont les instruction qui dise attendre le clique ?
    et comment les recurer a partir du click

    comment faire que le code suivant fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    attendreClick(Ligne,Colone,j):-
                      send(@e7, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,e,7) )),
    		  send(@e8, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,e,8) )),
    		  send(@e9, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,e,9) )),
    		  send(@e10, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,e,10) )),
     
    		  send(@f1, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,f,1) )),
    		  send(@f2, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,f,2) )),
    		  send(@f3, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,f,3) )),
    		  send(@f4, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,f,4) )),
    		  send(@f5, recogniser,click_gesture(left, '', double, message(@prolog, getClick, @receiver,f,5) ))
                     getClick(Objet,Ligne,Colone),send(Objet, fill_pattern, colour(yellow)).
    car la j'ai le message :
    getClick(_G3616, _G3617, _G3618)贠贀贿贀贠贀
    ERROR: '$c_call_prolog'/0: Undefined procedure: getClick/

  12. #12
    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
    Bonjour
    Voici ce qui peut-être fait pour simplifier la gestion des send :
    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
     
    :- pce_begin_class(cell, circle, "cellule de puissance 4").
    variable(status, object, both, "clicked/unclicked").
     
    initialise(P) :->
    	send_super(P, initialise, 50),
    	send(P, slot,  status, unclicked),
    	send(P, fill_pattern, white),
    	send(P, recogniser,
    	     click_gesture(left, '', single, message(P, click))).
     
     
    unlink(P) :->
    	send(P, send_super, unlink).
     
     
    % message processed when the cell is clicked
    % or when the letter is pressed on the keyboard
    click(P) :->
    	% test if the cell has already been clicked
    	% succeed when the the status is 'unclicked'
    	get(P, slot, status, unclicked),
    	% change the status
    	send(P, slot, status, clicked),
    	% change the color
    	send(P, fill_pattern, red).
    :- pce_end_class(cell).
    Un click permet de changer la couleur de cellule.

    Exemple d'utilisation dans l'affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    afficher:-new(D,dialog('Puissance 4')),
    		  send(D, size, size(430,600)),
    		  send(D, background, colour(mediumpurple)),
    		  new(B, cell),
    		  send(D, display, B, point(25,135)),
    		  send(D, open).
    Pour memoriser toutes les cellules, les objets "chain" sont très utiles.
    "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

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    j'ai le message d'erreur suivant qui s'affiche lors de l'exécution de ta solution :

    [PCE: error: white: Cannot find. Path = ".:bitmaps:~/lib/bitmaps:$PCEHOME/bitmaps:/usr/include/X11/bitmaps"]

  14. #14
    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
    Oui, c'est une question de choix de nom de couleur, en général j'utilise les définitions de la classe colour (ou color ?)
    "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

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    le souci c'est que a la méthode quand je click je dois passer des varibles comme la Grille et la liste de coup

  16. #16
    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
    On peyt les mettre en variables globales à l'aide des assert/retract.
    "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

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 226
    Points : 72
    Points
    72
    Par défaut
    un grand merci pour toute vos reponces vous m'avez bien aider

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

Discussions similaires

  1. Gérer les clicks sur liste d'images TileListe
    Par Anified dans le forum Flex
    Réponses: 7
    Dernier message: 08/07/2008, 10h08
  2. Intercepter les click dans un XLA
    Par Bevan dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/05/2008, 14h53
  3. Réponses: 2
    Dernier message: 16/12/2006, 19h00
  4. Probleme avec les Click
    Par MadSoldier dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 25/10/2006, 16h58
  5. Enregistrer les Click souris (Bas et haut)
    Par Aloneghost dans le forum Langage
    Réponses: 7
    Dernier message: 12/04/2006, 21h23

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