Missing method in mred:canvas%?
I used MrEd Designer to make a user interface for a Scheme program.  It includes a mred:canvas% on which I'd like to plot points using draw-point.  It's defined as:
(define (naca-ui-init
         {...}
         #:airfoil-canvas-class
         (airfoil-canvas-class canvas%)
         {...})
and later:
(set! airfoil-canvas
        (new
         airfoil-canvas-class
         (parent vertical-pane-2165)
         (horiz-margin 0)
         (min-width 350)
         (vert-margin 0)
         (gl-config #f)
         (stretchable-width #t)
         (enabled #t)
         (stretchable-height #t)
         (min-height 175)
         (label "Canvas")
         (style '(border))))
When I try to (send airfoil-canvas draw-point 15 30), however, I get:
send: no such method: draw-point for class: canvas%
 === context =开发者_如何转开发==
/usr/local/lib/racket/collects/racket/private/class-internal.rkt:4543:0: obj-error
/home/jason/NACA/naca-ui.scm:29:8: plot-point
/home/jason/NACA/naca.scm:225:23
/home/jason/NACA/naca-ui.scm:21:10: inner
Am I misreading the documentation, or is there something else I don't get here?
PS: Can someone with more rep add the tag MrEd? It would be pertinent here, but you need 1500 to add new tags.
Answering my own question: in short, my docs were moldy and I should have used http://docs.racket-lang.org/. From there, it was easy to see that:
(send airfoil-canvas draw-point 15 30)
should have been:
(send (send airfoil-canvas get-dc) draw-point 15 30)
You need to do your drawing on a drawing-context these days.
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论