Отсутствует метод в mred: canvas%? - PullRequest
0 голосов
/ 26 июля 2010

Я использовал 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, чтобы добавить новые теги.

1 Ответ

1 голос
/ 27 июля 2010

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

(send airfoil-canvas draw-point 15 30)

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

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

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

...