Edit the tool with the tool

A partir de la pila "Home" y cualquier otra ventana (pila) que se utilice es posible modificarla con la propia herramienta permitiendo personalizar la aplicación al gusto de cada uno.

Como ejemplo de esto, una modificación interesante es disponer de un método rápido para cambiar de modo ejecución a modo edición sin tener que recurrir a pulsar el correspondiente botón con el ratón. Para ello, minimizando cualquier otra pila abierta se puede utilizar el "Control Browser" para visualizar las propiedades de los botones "browse" y "pointer" con una secuencia de teclas que los activen. Por similitud con el entorno de Revolution se utilizará el Ctrl+0para edición y Ctrl+9la ejecución.

Figura 3-6. Modificando el comportamiento de los botones de la "Menu Bar"

Sólo una nota más: no hay que olvidar grabar los cambios, es una buena constumbre en general en aplicaciones que por su naturaleza dinámica de ejecución pueden bloquearse o cerrarse sin demasiadas contemplaciones. Si todavía no he mencionado la utilidad de la combinación de teclas Ctrl+S, este es un buen momento para probarla.

Otra alternativa de modificación interesante, al menos para este autor, es que el comportamiento de la pila "Index" fuese menos dependiente en modo exclusivo del ratón. Es decir, que desde el teclado se pudiesen lanzar las ventanas que hacen referencia a cada item de la ayuda.

Para ello, es posible ver los contenidos de la pila desde el "Control Browser" y comprobar como toda la tarea se realiza entre dos campos de texto (con identificadores 1008 y 1009), de modo que el primero va actualizando el elemento selecccionable del segundo y este realiza el lanzamiento de la pila y tarjeta adecuadas.

Figura 3-7. Modificaciones en la pila "Help Index".

local searchstring, o

on keyUp
  #  local searchstring, o
  put me into searchstring
  put lineOffset(return & searchstring, field 3) into o
  set the scroll of field 3 to o * the effective textHeight of field 3
  
  set the hilitedLines of field 3 to (o + 1)
  
  if o is 0 and me is not empty then
    beep 1
    delete last char of me
    keyUp
  end if
end keyUp



on returnInField
 send "mouseUp" to button "emularClickEnLlista1"
end returnInField