Отсутствует метод в mred: canvas%?

Я использовал MrEd Designer, чтобы создать пользовательский интерфейс для программы Scheme. Он включает mred: canvas%, на котором я хотел бы построить точки с помощью draw-point. Это определяется как:

(define (naca-ui-init
         {...}
         #:airfoil-canvas-class
         (airfoil-canvas-class canvas%)
         {...})

и позже:

(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))))

Однако когда я пытаюсь (send airfoil-canvas draw-point 15 30), я получаю:

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

Я неправильно читаю документацию , или есть еще что-то, чего я здесь не понимаю?

PS: Может ли кто-нибудь с большим количеством представителей добавить тег MrEd? Здесь было бы уместно, но вам нужно 1500, чтобы добавить новые теги.


person JasonFruit    schedule 26.07.2010    source источник
comment
Если вы не получили здесь ответа, попробуйте воспользоваться списком рассылки Racket.   -  person Eli Barzilay    schedule 27.07.2010
comment
Сделанный. Если я получу там хороший ответ, я резюмирую его здесь.   -  person JasonFruit    schedule 27.07.2010


Ответы (1)


Отвечая на свой вопрос: короче говоря, мои документы были заплесневелыми, и мне следовало использовать http://docs.racket-lang.org/. Отсюда было легко увидеть, что:

(send airfoil-canvas draw-point 15 30)

должны были быть:

(send (send airfoil-canvas get-dc) draw-point 15 30)

В наши дни вам нужно рисовать в контексте рисования.

person JasonFruit    schedule 27.07.2010