Pregunta

Estoy trabajando en un juego Connect Four usando LISP común y el Lispworks Capi. He terminado con la interfaz, excepto una cosa: uso push-buttons (en un panel de botón) para soltar piezas en las columnas, y me gustaría deshabilitar un botón una vez que su columna correspondiente esté llena. Soy relativamente nuevo en Lisp, y especialmente no entiendo las cosas orientadas a objetos, por lo que no puedo entender cómo hacerlo.

Se puede crear un solo botón de empuje esto:

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

Y deshabilitado así:

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

Se crea un panel de botón de manera similar, excepto que se necesita un :items argumento que es una lista de botones (o datos, de los cuales el CAPI creará botones de) para estar en el panel.

Simplemente necesito saber cómo deshabilitar los botones individuales de un panel de botón. También sería bueno si pudiera explicar lo que está sucediendo en ese último código allí, porque no lo entiendo en absoluto.

¡Gracias!

¿Fue útil?

Solución

Un poco de búsqueda en el manual revela esta función, que le permite habilitar/deshabilitar uno o más elementos en un push-button-panel. Además, el código que deseaba explicó llama a la función (setf capi:button-enabled) con los argumentos nil y my-button. Sin embargo, esta función se llama en el "proceso" asociado con su botón. (Ver la documentación aquí

(PD si necesita ayuda para comprender las "cosas orientadas a objetos", Lisp común práctico podría ser un recurso útil)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top