[racket] Drawing in the Canvas from outside

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Tue Jan 27 13:20:53 EST 2015

My code is tested. Copy, paste, run, evaluate (my-draw) at repl. If it doesn't work, report the exact actions you perform to get a failure. 




On Jan 27, 2015, at 1:08 PM, Alexandr M wrote:

> Thanks, 
> 
> I copied your example and it seems it doesn't work ..
> 
> If I comment the code inside [paint-callback .. it also doesn't draw anything.
> 
> In general I need to send 'messages'  from 'outside' to the canvas object to visualize numerical experiment performed by separate function. 
> 
> I can implement experiment itself inside [pain-callback (lambda ... functions ) under definition of canvas, but it looks strange and clumsy.
> Sometimes I need just to run computations, but sometimes I need also to do visualization with animation. 
> 
> How could I achieve this?
> 
> Best regards,
> Alex
> 
> On 27 January 2015 at 19:54, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
> 
> Do you want something like this:
> 
> #lang racket/gui
> 
> (define frame (new frame% [label ""] [width 700] [height 500]))
> (define canvas
>  (new canvas%
>       [parent frame]
>       [paint-callback
>        (lambda (c dc)
>          (send dc draw-line 1 1 100 100))]))
> (send frame show #true)
> 
> (define (my-draw)
>   (send (send canvas get-dc) draw-line 100 100 0 200))
> 
> 
> -- Matthias
> 
> 
> 
> On Jan 27, 2015, at 12:09 PM, Alexandr M wrote:
> 
> > Hello,
> >
> > How can I draw the line (for example) in the canvas object defined as:
> >
> > (define frame (new frame% [label ""] [width 700] [height 500]))
> > (define canvas (new canvas% [parent frame]
> >   ;;;; - call from outside:  [paint-callback (lambda (c dc) (send dc draw-line 1 1 10 10) )]
> >   ))
> >
> > by calling a function like
> >
> > (define (MyDraw canvas-obj) .... (draw-line 1 1 10 10))
> >
> > ?
> >
> > --
> > Best regards,
> > Alex
> > ____________________
> >  Racket Users list:
> >  http://lists.racket-lang.org/users
> 
> 
> 
> 
> -- 
> Best regards,
> Alexander Maslov

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20150127/bc6fce60/attachment.html>

Posted on the users mailing list.