Pilas (stack) y subpilas

En este texto utilizamos indistintamente el término pila y aplicación puesto que es el gran contenedor. Cada ventana que aparece en pantalla es una pila, desde el punto de vista de MetaCard o de Revolution. Algunas pueden estar subordinadas a otras y por ello distinguimos entre pilas y subpilas. Ha podido observar las cuestiones básicas en la la sección de nombre MetaClasses en Capítulo 1 relativas a este tipo de objeto, ahora haremos un breve repaso y lo acompañaremos con código que puede escribir y ejecutar desde la "Message Box".

Lás órdenes básicas para abrir una pila ya las hemos visto en el primer tutorial, allá por la la sección de nombre Tutorial sobre aplicaciones en Capítulo 1 del Capítulo 1 (go/topLevel/modeless). ¿Reconoce la siguiente pila?

topLevel "MC stack Properties Menu"
                         

Sólo nos queda por mencionar open y palette y para cerrar una pila ..., correcto: close stack. Aunque también existen otras posibilidades como quit. La ayuda, como siempre, le asite a la hora de recordarlas y le explica las diferencias.

Entre las características más estéticas de una pila hay que mencionar decorations y backdrop.

Importante: En la lista de correos de MetaCard se ha evidenciado el comportamiento inestable de esta propiedad en manejadores de ventanas como KDE o GNOME, así que le recomiendo que salve su aplicación antes de hacer uso de ella si, como yo, es usuario habitual de uno de estos entornos y no quiere hacer uso de otros como BlackBox o wm.

Primero que nada, recordemos que es un objeto más de los que podemos utilizar. Es el contenedor de todos los demás, así que las acciones sobre este repercutirán en todos los demás. ¿Qué cosas se pueden hacer con una pila? Lo que se le ocurra, hagámoslo simplemente desde la "Message Box":

Pongámoslo todo junto y vamos a crea un "tutorial" sobrel el manejo y la actuación con una pila. El esquema general es un botón que desencadena la acción oportuna y su código que es mostrado en un campo de texto. Cada tarjeta contiene esta pareja y es un único caso de aplicación. Para que aparezca el código en el campo de texto cada vez que cambiamos de tarjeta, todas las tarjetas (asumiendo los nombre de "accio" para el botón y "scriptAccio" para el campo de texto) tienen este código:

# Cualquier tarjeta
on openCard
  put the script of button "accio" into fld "scriptAccio"
end openCard

Cada tarjeta es un caso de aplicación y le propongo estos: