如何在smalltalk中创建一个窗口

时间:2012-11-08 18:55:26

标签: window smalltalk visualworks

我正在尝试打开一个窗口,但我不断收到错误消息。 摘录:

Window new
  label: 'Hello';
  open

2 个答案:

答案 0 :(得分:3)

您可以使用:

ScheduledWindow new
    label: 'Hello';
    open

或者打开更大的:

ScheduledWindow new
    label: 'Hello';
    openIn: (20@20 extent: 300@300)
但是,我怀疑这并不是你真正想要做的事情,因为很难使用这种方式构建的窗口。你能解释一下你想做什么吗?

答案 1 :(得分:2)

好的,对于像你这样的游戏你想使用自定义控件。首先为游戏创建View的子类,然后重写displayOn:方法以显示视图。您可以使用ViewHolder将视图添加到UIPainter画布。将View:属性设置为返回自定义视图的方法的名称。

要拦截鼠标点击,您需要为自己的视图设置自定义控制器。您将对Controller或其子类之一进行子类化以创建Controller。 View中名为defaultControllerClass的方法返回控制器类的名称。在控制器中,您可以拦截鼠标事件。

我建议你加载一个示例游戏来帮助你入门。打开宗地管理器,然后从列表中选择玩具。你应该在那里看到SpiderSolitaire。这是为VisualWorks编写的游戏,它显示自定义视图,在该视图上执行一些简单动画,并拦截鼠标事件。这应该是一个很好的例子。