我正在使用常见的lisp和LispWorks CAPI开发一个连接4的游戏。除了一件事之外,我已经完成了界面:我使用按钮(在按钮面板中)将片段放入列中,并且我希望在相应的列已满时禁用该按钮。我对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将从中创建按钮)。
我只需要知道如何禁用按钮面板上的各个按钮。另外,如果你能解释一下最后一段代码中发生了什么,那就太好了,因为我根本不理解它。
谢谢!
发布于 2011-06-13 21:55:33
稍微搜索一下手册就会发现this function,它允许您启用/禁用push-button-panel中的一个或多个元素。此外,您想要解释的代码使用参数nil和my-button调用函数(setf capi:button-enabled)。但是,此函数是在与您的按钮关联的“进程”中调用的。(请参阅文档here
(附注:如果你需要帮助理解“面向对象的东西”,Practical Common Lisp可能是一个有用的资源)
https://stackoverflow.com/questions/6326565
复制相似问题