[Scheme] let* avec canvas% : quand get-client-size disponible ?

let* avec canvas% : quand get-client-size disponible ? [Scheme] - Divers - Programmation

Marsh Posté le 21-04-2004 à 13:14:45    

Salut,
voila mon code pour commencer à créer une fenetre :
 
(define (go-display)
  (let* (
         (win-w 600)
         (win-h 350)
         (w (let-values (((scr-w scr-h) (get-display-size #t)))
              (instantiate frame% ()
                (label "Orbital" )
                (width win-w)
                (height win-h)
                (x (- (/ scr-w 2) (/ win-w 2)))
                (y (- (/ scr-h 2) (/ win-h 2))))))
         (h (instantiate horizontal-panel% () (parent w)))
         (canva (instantiate canvas% () (min-width 400) (parent h)))
         (v (instantiate vertical-panel% () (parent h)))
         (dc (send canva get-dc))
 
 ;... boutons,...
 
         (c-width
          (let-values(((dc-w dc-h) (send canva get-client-size)))
            dc-w))
         (c-height
          (let-values (((dc-w dc-h) (send canva get-client-size)))
            dc-h))
 ) ; fin des variables locales
 
    (send w show #t)
    (yield)
 
    (display c-width)
    ))
 
m'affiche 1 !!
 
en fait j'ai vu que lorsque je récupère la taille du canva, il retourne toujours 1,
par contre si je la récupère après le (yield), là c'est bon (440).
Donc dans le let c'est encore "trop tôt", comment je dois faire ?
Je ne comprends pas pourquoi...
 
merci
   ANT

Reply

Marsh Posté le 21-04-2004 à 13:14:45   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed