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

Scheme Discussion :

Problème graphique


Sujet :

Scheme

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Points : 9
    Points
    9
    Par défaut Problème graphique
    Salut à tous !!
    J'ai à nouveau un problème graphique,
    j'ai créé une frame% à l'intérieur de laquelle j'ai mis plein de panel% et un canvas, mais j'ai besoin de cliquer dans le canvas et qd je défini la fonction
    (define click (get-mouse-click canvas)) ça ne marche pas, il me dit qu'il faut un viewport, comment pourrais-je faire pour ne pas avois à tout recommencer dans un viewport ???
    Merci pour vos réponses

  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
    Ce petit bout de code te montre comment faire :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    (namespace-require (quote (lib "../htdch/graphics/rename.ss" ))) 
    
    
    ; fonctions de gestion d'évènements associés aux éléments des boîtes de dialogues
    ;; elles doivent être définies avant les éléments eux-mêmes
    
    ;; fonction de dessin des canvas deux arguments, le canvas et le contexte de dessin
    (define (canvas_draw cv dc)
      ;; j'obtiens le texte associé au canvas
      (let ((txt (send cv get-label)))
         ;; j'obtiens la taille du canvas
         (letrec-values ([(x y) (send cv get-size)]) 
           ;; j'obtiens la taille de la zone d'écriture
           (letrec-values ([(dx dy f1 f2) (send dc get-text-extent txt)])
             ;; j'écris en centrant le dessin
             (send dc draw-text txt (/ (- x dx) 2) (- (/ y 2) dy))
    ) ) )  )
    
    ;; fonction appelée par le bouton, elle affiche un "message box"
    (define (button_fonc x y)
      (let ((x (make-object dialog% "Message Box" maFenetre 100 80 500 100)))
            (let ((y (make-object canvas% x null canvas_draw "Click")))
              (send x show #t) 
     )   )  )
    
    ;; définition de la boîte de dialogue
    ;; définition de la fenêtre principale
    (define maFenetre (make-object frame% "Ma première fenêtre")) ; création de l'objet maFenetre
    
    (send maFenetre min-width 200) ; définition de sa largeur mini
    (send maFenetre min-height 200) ; définition de sa hauteur mini
    (send maFenetre resize 300 300) ; redimensionnement de la fenetre
                         
    ;; je lui adjoins une aire de dessin ou d'écriture avec un texte associé
    (define monCanvas1 (make-object canvas% maFenetre null canvas_draw "Premier Canvas"))
    
    ;; je définis mon propre canvas 
    (define my-canvas%
      (class canvas%
        (define/override (on-subwindow-event  receiver mouse-event)
          (when (eqv? (send mouse-event get-event-type) 'enter)
            (display 'got)
            (newline)) 
          ;;(send this on-subwindow-event this mouse-event)
          #f)
        (define/override (on-event mouse-event)
          (cond ((eqv? (send mouse-event get-event-type) 'enter)
                 (let ((x (send mouse-event get-x))
                  (y (send mouse-event get-y)))
                   (display (list 'enter )))
                 (newline))
                ( (eqv? (send mouse-event get-event-type) 'left-up)
                  (let ((x (send mouse-event get-x))
                        (y (send mouse-event get-y)))
                    (display (list '"click en " x y)))
                  (newline)
                (send this on-subwindow-event this mouse-event)))
           #f)
        (super-instantiate ()))) 
      
          ;; j'adjoins maintenant à ma fenêtre un bouton (qui sera centré) sous le canvas
    (define monBouton (make-object button% "Bouton" maFenetre button_fonc)) ; création de l'objet bouton
    (send monBouton min-width 150) ; définition de sa largeur mini
    (send monBouton min-height 20) ; définition de sa hauteur mini
    
    ;; je lui adjoins une aire de dessin ou d'écriture avec un texte associé
    (define monCanvas2 (make-object my-canvas% maFenetre null canvas_draw "Second canvas"))
    
    
    
    (send maFenetre show #t) ; affichage de la fenetre
    Un document bien pratique trouvable sur Internet : mred.pdf qui décrit toutes les interfaces graphiques de MScheme
    "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

Discussions similaires

  1. Problème graphique : Elargir un trait
    Par wolfmegur80 dans le forum Delphi
    Réponses: 2
    Dernier message: 20/12/2006, 10h04
  2. Problème graphique & calcul dans champ
    Par jacquesprogram dans le forum Access
    Réponses: 1
    Dernier message: 08/09/2006, 15h09
  3. [Cacti ] Problèmes graphiques
    Par seumeneur dans le forum Développement
    Réponses: 2
    Dernier message: 23/07/2006, 16h14
  4. Gros problème graphique
    Par Blo0d4x3 dans le forum Windows XP
    Réponses: 7
    Dernier message: 16/06/2006, 21h12
  5. Problème graphique (Vectoriel?...)
    Par Aloneghost dans le forum Langage
    Réponses: 3
    Dernier message: 25/04/2006, 17h38

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