> 1 <

Автор Сообщение

rv82

Members


Статус

46 сообщений
http://rv82.ya.ru
Где: Russia
Род занятий:
Возраст:

#5121   2011-11-25 09:01 GMT+3 часа(ов)      
Здравствуйте! Если кто знает, подскажите пожалуйста, можно ли назначить callback'и элементам интерфейса после того, как интерфейс собран? Крайне неудобно привязывать callback'и на этапе создания кнопок. Было бы удобнее, если бы для объектов, реагирующих на события, был объявлен метод set-callback или что-то вроде того.

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#5126   2011-11-25 15:29 GMT+3 часа(ов)      
rv82
Если кто знает, подскажите пожалуйста, можно ли назначить callback'и элементам интерфейса после того, как интерфейс собран?
Можно Вам пример с кодом или сами догадаетесь?

rv82

Members


Статус

46 сообщений
http://rv82.ya.ru
Где: Russia
Род занятий:
Возраст:

#5127   2011-11-25 16:59 GMT+3 часа(ов)      
misha
Можно Вам пример с кодом или сами догадаетесь?

Было бы здорово. Или укажите, где можно посмотреть в коллекциях. Я там бегло просмотрел в drracket, но в таком огромном количестве кода ничего не нашёл.

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#5128   2011-11-25 19:08 GMT+3 часа(ов)      
#lang racket/gui
 
(define my-button%
(class button%
(init-field [callback (lambda (btn event) (void))])
(super-new [callback (lambda (btn event) (callback btn event))])))
 
(define test%
(class frame%
(super-new [label "Test"]
[width 200]
[height 100])
 
(define btn (new my-button%
[parent this]
[label "Click Me"]
[vert-margin 50]
[horiz-margin 50]))
 
(define (btn-event btn event)
(message-box "Button" " Hello! " this))
 
(set-field! callback btn btn-event)))
 
(send (new test%) show #t)
 

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#5129   2011-11-25 20:26 GMT+3 часа(ов)      
На всякий пожарный лучше добавить контракт
(define/contract my-button%
(class/c (init-field [callback (-> (is-a?/c my-button%)
(is-a?/c control-event%)
any)]))
(class button%
(init-field [callback (lambda (btn event) (void))])
(super-new [callback (lambda (btn event) (callback btn event))])))

rv82

Members


Статус

46 сообщений
http://rv82.ya.ru
Где: Russia
Род занятий:
Возраст:

#5130   2011-11-25 21:46 GMT+3 часа(ов)      
Спасибо! Примерно такие мысли у меня и были, навеянные используемым мной в давние времена языком Java. Надо будет это дело несколько реорганизовать, чтобы меньше зависеть от классов. Отвык я от них за время использования Tcl/Tk.
> 1 <


Онлайн :

0 пользователь(ей), 31 гость(ей) :




Реклама на сайте: