3

我正在使用 common lisp 和LispWorks CAPI开发 Connect Four 游戏。除了一件事之外,我已经完成了界面:我使用按钮(在按钮面板中)将片段放入列中,并且我想在相应列已满时禁用按钮。我对 lisp 比较陌生,而且我特别不了解面向对象的东西,所以我不知道该怎么做。

可以这样创建一个按钮:

(setf my-button (capi:contain
                 (make-instance 'capi:push-button
                                :text "Button!")))

并因此禁用:

(capi:apply-in-pane-process 
 my-button #'(setf capi:button-enabled) nil my-button)

类似地创建一个按钮面板,除了它需要一个:items参数,即面板中的按钮列表(或数据,CAPI 将创建按钮)。

我只需要知道如何禁用按钮面板的各个按钮。如果你能解释最后一段代码中发生的事情,那就太好了,因为我根本不明白。

谢谢!

4

1 回答 1

2

稍微搜索一下手册就会发现这个功能,它允许您启用/禁用一个或多个元素push-button-panel。此外,您想要解释的代码(setf capi:button-enabled)使用参数nilmy-button. 但是,此函数在与您的按钮关联的“进程”中调用。(请参阅此处的文档

(PS 如果您在理解“面向对象的东西”方面需要帮助,Practical Common Lisp可能是一个有用的资源)

于 2011-06-13T13:55:32.960 回答