Как создать окно в 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)

Я подозреваю, однако, что это не то, что вы действительно хотите сделать, так как трудно работать с окном, построенным таким образом. Можете ли вы объяснить больше о том, что вы хотите сделать?

Другие вопросы по тегам