Lispworks Capi:Push-Button-Panelで個々のボタンを無効にします
-
27-10-2019 - |
質問
CommonLISPと lispworks capi. 。 1つのことを除いて、インターフェイスを終了しました。プッシュボタン(プッシュボタンパネル)を使用して列にピースをドロップします。また、対応する列がいっぱいになったらボタンを無効にしたいと思います。私は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がボタンを作成するデータ)のリストである引数。
プッシュボタンパネルの個々のボタンを無効にする方法を知る必要があります。また、私はそれをまったく理解していないので、そこの最後のコードで何が起こっているのかを説明できればいいでしょう。
ありがとう!
解決
マニュアルの検索が少し明らかになりました この機能, 、1つ以上の要素を有効/無効にすることができます push-button-panel
. 。また、説明したコードが関数を呼び出すコード (setf capi:button-enabled)
議論で nil
と my-button
. 。ただし、この関数は、ボタンに関連付けられた「プロセス」で呼び出されます。 (ドキュメントを参照してください ここ
(PS「オブジェクト指向のもの」を理解するのに助けが必要な場合、 実用的な一般的なLISP 有用なリソースかもしれません)
所属していません StackOverflow