I would like to draw on a canvas in a window at various times during program execution. My first attempt was to combine two examples:
#lang racket/gui (define frame (new frame% [label "Example"] [width 300] [height 300])) (define top-canvas (new canvas% [parent frame])) (send frame show #t) (define dc (send top-canvas get-dc)) (send dc draw-rectangle 0 10 ; Top-left at (0, 10), 10 pixels down from top-left 30 10) ; 30 pixels wide and 10 pixels high (send dc draw-line 0 0 ; Start at (0, 0), the top-left corner 30 30) ; and draw to (30, 30), the bottom-right corner (send dc draw-line 0 30 ; Start at (0, 30), the bottom-left corner 30 0) ; and draw to (30, 0), the top-right corner The cross and box are drawn, but "instantly" over-written by a blank canvas. I suppose this is because on-paint is triggered? (not sure by what..) If I put the (send frame...) form at the end of the code, the cross and box aren't seen. I am sure this is due to me not understanding the model properly - I'd be grateful for some help... many thanks Chris
____________________ Racket Users list: http://lists.racket-lang.org/users