Народ, давайте пообщаемся по VisualAge смоллтоку.
Как у любого начинающего его осваивать, возникла сразу куча вопросов. Но начну пока с наиболее важных для меня.
Вот пытаюсь реализовать перехват, вернее пока диагностику, нажатия кнопок на клавиатуре. Мне это нужно, чтобы попробовать написать программу во многом схожую с простой терминальной программой - той, что обычно используется для подключения к ком-порту. Только в моём случае работать она должна по TCP.
Главное отличие - ввод данных должен завершаться не ВК, а кнопкой "." (точка).
В книжке "VisualAge for Smalltalk Handbook. Volume 1: Fundamentals" есть описание примера перехвата событий клавиатуры, вот этот код:
Код:
(self subpartNamed: 'Window') primaryWidget
addEventHandler: KeyPressMask
receiver: self
selector: #keyEventHandler:clientData:event:
clientData: nil.
и простой метод для диагностики срабатывания:
Код:
keyEventHandler: widget clientData: clientData event: event
Transcript show: event keysym printString
Код в чистом смоллтоке заработал, а вот в визуальной среде почему-то не хочет. Вот как я конструировал окно:
1. В визуальном редакторе расположил главное окно Window, а на него бросил Multi-line Edit1.
2. Скопировал метод обработчика, заменив в нём 'Window' на 'Multi-line Edit1' и присвоив ему имя "eventHandler".
3. Добавил метод-селектор что выше.
4. Ну и в визуальном редакторе создал связь aboutЕoOpenWidget со скриптом обработчика "eventHandler".
При запуске приложения окно появляется, но в окне Транскрипта при нажатии клавиш клавиатуры сообщения не появляются.
Где здесь ошибка?