Как создать окно в smalltalk
Я пытаюсь заставить окно показываться, но я продолжаю получать сообщение непонятая ошибка. Фрагмент:
Window new
label: 'Hello';
open
2 ответа
Хорошо, для такой игры вы хотите использовать пользовательский элемент управления. Вы начинаете с создания подкласса View для своей игры и переопределяете метод displayOn: для отображения вида. Вы можете добавить вид на холст UIPainter, используя ViewHolder. Установите для свойства View: имя метода, который возвращает ваше пользовательское представление.
Чтобы перехватывать щелчки мышью, вам нужно иметь собственный контроллер для вашего вида. Вы создадите подкласс Controller или один из его подклассов. Метод с именем defaultControllerClass в представлении возвращает имя класса контроллера. В контроллере вы можете перехватывать события мыши.
Я предлагаю вам загрузить пример игры, чтобы начать работу. Откройте диспетчер посылок и выберите "Игрушки" из списка. Вы должны увидеть SpiderSolitaire там. Это игра, написанная для VisualWorks, которая отображает пользовательское представление, выполняет простую анимацию в этом представлении и перехватывает события мыши. Это должно послужить хорошим примером для использования.
Вы можете использовать это:
ScheduledWindow new
label: 'Hello';
open
Или чтобы открыть больше:
ScheduledWindow new
label: 'Hello';
openIn: (20@20 extent: 300@300)
Я подозреваю, однако, что это не то, что вы действительно хотите сделать, так как трудно работать с окном, построенным таким образом. Можете ли вы объяснить больше о том, что вы хотите сделать?