#lang racket/gui ;;; api4-on-char.rkt - Gestion du clavier dans un canvas (page 333) ;;; Chapitre 14 (Objets et API graphique) ;;; Livre PCPS : "Premiers Cours de Programmation avec Scheme" ;;; Langage determine par le source (require (only-in mzlib/string expr->string)) (define FRAME (new frame% [label "on-char"] [width 100] [height 100])) (define MY-CANVAS% (class canvas% (super-new) (define/override (on-char evt) (let ((c (send evt get-key-code)) (dc (send this get-dc))) (send dc clear) (send dc draw-text (expr->string c) 30 30))))) (define CANVAS (new MY-CANVAS% (parent FRAME))) (send CANVAS focus) ; sans le focus il faudrait cliquer dans la fenetre... (send FRAME show #t) (printf "Tapez sur des touches du clavier et regardez dans le canvas !...\n")