Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Smalltalk
Перезагрузить страницу Всякие вопросы про VA Smalltalk
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
-serzh- -serzh- вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.09.2016
По умолчанию Всякие вопросы про VA Smalltalk - 06.09.2016, 22:49

Народ, давайте пообщаемся по 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".

При запуске приложения окно появляется, но в окне Транскрипта при нажатии клавиш клавиатуры сообщения не появляются.

Где здесь ошибка?
Ответить с цитированием
  (#2 (permalink)) Старый
-serzh- -serzh- вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.09.2016
По умолчанию 08.09.2016, 18:49

Отвечу сам себе, может кому-нибудь поможет.

Строку :
Код:
(self subpartNamed: 'Multi-line Edit1')  primaryWidget
надо заменить на:
Код:
(self subpartNamed: 'Multi-line Edit1')  widget
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклы в Dolphin Smalltalk ~Nikita~ Smalltalk 4 18.03.2010 08:02
Барби всякие нужны, Барби всякие важны. zevun Офтопик 6 16.02.2010 17:30
Smalltalk и Self что лучше Cornered_Rat Smalltalk 2 14.11.2009 22:57
вакансия для Smalltalk-еров:) lorsin Работа 3 19.08.2008 15:20
Про всякие разные анализаторы и вычислители Ослик Иа Prolog 1 12.12.2007 18:08
Как переписать программу с SmallTalk V на VisualAge SmallTalk Novikov Smalltalk 1 25.10.2007 15:43
Smalltalk/X как с ним работать imported_frfr Smalltalk 3 01.07.2007 17:57
Появляются всякие папки на рабочем столе. Vario Техническая поддержка 10 21.06.2007 14:54
Little Smalltalk 3 как с ней работать Saemon Zixel Smalltalk 4 27.08.2006 22:18
Где найти литературу по Smalltalk aleksejk1 Smalltalk 1 13.06.2003 15:13
Примеры использования Smalltalk SergeySS Smalltalk 5 21.03.2003 17:26



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов