|
Construyendo Ventanas (Windows)
|
Las aplicaciones PowerBuilder consisten en ventanas (windows)
que interactúan con el usuario.
EL OBJETO WINDOWS ( Ventana )
|
Las ventanas son la interface entre el usuario y una aplicación
Power Builder. Muestran información requerida e interactúan con el usuario.
Un Ventana consta de:
- Atributos: Son los que definen el comportamiento y apariencia
de la ventana. Estos pueden ser cambiados . Ejm (color, título, etc).
- Eventos: Especifican lo que sucede cuando un window es
manipulado. Ejem: evento close (ocurre al cerrar una ventana)
- Controles: Colocados sobre un windows, para recibir y brindar
información al usuario. Ejm (command button, singleline edit, radio button, etc).
|
Entorno Windows (Ventana)
|
Un window (ventana) es un término para una pantalla. Se puede tener
múltiples ventanas en la pantalla al mismo tiempo y cada ventana trabaja independientemente.
En PowerBuilder se crean ventanas usando el Pintor de Windows. Se
puede abrir el pintor de windows haciendo click con el mouse sobre el botón ( ) situado en el PowerBar, o presionando
Shift + F2.
La barra de herramientas de este painter (pintor) es mucho más
compleja que la del objeto aplicación.
Los botones que tienen una flecha negra a la derecha despliegan una lista
con más botones al pinchar sobre ella.
Uno de los botones más importantes es el cuarto empezando por la izquierda.
Al pulsar sobre la flecha negra que despliega la lista, muestra todos los objetos
que podemos pegar encima de la ventana (controles que describiremos más adelante).
Estos controles se pueden pegar en la ventana y al pulsar el boton derecho
del mouse sobre ellos, aparece un menú, qué entre otras opciones muestra la
opción properties (propiedades) y la opción de script (código). Estas dos son las más
utilizadas, nos permiten cambiar algunas propiedades y codificar los eventos con las
instrucciones de PowerScript que describiremos más adelante.
A continuación se describirá cómo construir una ventana que no esté
basada en una ya existente.
Al acceder al pintor de window ( ) , se displaya el select window y lista
los window de la librería actual.
Las ventanas (windows)
pueden ser heredadas (Inherit). |
|
|
Para construir una nueva ventana, seguir los siguientes pasos:
- Hacer click en botón New o dar click en el botón
de la barra de herramientas del pintor window.
- A continuación, se displayará el workspace (espacio de trabajo ) y es aquí
donde se definirá la apariencia y comportamiento del window (ventana).
|
Tipos de Ventanas (Windows)
|
Hay varios tipos de ventanas
Windows Main : Son ventanas que son independientes de otros windows.
La primera ventana (window) abierta en la aplicación es el
window Main, a menos que sea una aplicación MDI.
Window Popup : Un popup tiene una ventana de origen como la ventana
pequeña pero no tiene todas las limitaciones.
Window Child : Los windows Child son siempre abiertos desde un window
main o popup, los que llegan a ser su window parent.
Un window Child sólo existe dentro de su parent.
No puede tener asociado un menú y nunca son considerados
como el window activo. Un window child se cierra cuando su
parent se cierra.
Window Response : Los window response piden información al usuario, siempre
son abiertos dentro de otro window ( su pariente ).
MDI Frame : Un MDI window es un frame window, y es usado cuando el
usuario necesita organizar los trabajos con múltiples ventanas
Ejemplo :
Ventana de impresión
( típico ejemplo de una ventana Response )
| |
|
|
Propiedades del Window (Ventana)
|
Cada ventana y cada uno de sus controles tiene un estilo que determina
la apariencia para el usuario.
|
Cuando define un estilo para una ventana (window) se le asigna valores a
las propiedades de dicha ventana.
Para el ejemplo: la ventana será
visible, de tipo main, de color silver, entre otros.
| |
|
Para definir el estilo de windows, realizar los siguientes pasos:
- Hacer doble click sobre el window (aparecerá una pantalla similar a la superior).
- Especifique el tipo de window (Window Type).
- Especifique otras propiedades del window.
- Asociar un menú con el window (si lo desea).
- Escoger el color para el background del window (Window Color).
- Finalmente, hacer click en OK.
|
ESPECIFICANDO EL TIPO DE WINDOW
|
|
Lo primero que se debe hacer después de crear
un window es especificar su tipo, para ello:
| |
|
|
ESPECIFICANDO OTRAS PROPIEDADES BASICAS
|
También puede especificar si el window se maximiza, tiene Scrollbars, visible, enabled,
resizable, entre otros.
( )
Notitas:

|
- Un window main debe tener un título.
- Un window child no puede tener menú.
- Un window response no puede tener menú, maximize box,
minimize box, ni resizable (es decir, su tamaño no puede variar).
|
|
ASOCIANDO UN MENU A LA VENTANA
|
|
Para asociar un menú a un window, digitar el nombre del menú a asociar en
el campo Menu Name de la ventana de propiedades.
En el caso que el menú que se desea
seleccionar no aparezca en la lista (P.B. lista todo los menúes de
la aplicación), hacer click en el botón y escoja el menú deseado.
Se puede cambiar un menú asociado con
un window durante ejecución con la función ChangeMenu.
| |
|
|
ESCOGIENDO EL COLOR DE LA VENTANA
|
|
Para cambiar el color de la ventana, seguir los siguientes pasos:
- Seleccionar un color en el Listbox Window color
de la ventana de propiedades de la ventana.
| |
|
|
CAMBIANDO EL TAMAÑO Y LA POSICION
|
En la ventana de propiedades de la ventana (ingresar haciendo doble
click sobre la ventana), escoger la carilla y seguir los siguientes pasos :
- Seleccionar el estado inicial del window (Normal, Minimizado o Maximizado).
- Mover el window a un lugar apropiado con el mouse o dando valores a X e Y.
- Hacer click en «OK»
Para window Main, Popup, Response y MDI frame, X e Y son relativos a la esquina
superior izquierda del y para window child, X e Y son relativos al parent).
Para cambiar el tamaño del window (ventana):
| |
|
- Usar el mouse para modificar el tamaño o cambiar los atributos Width y Height.
Mientras construye el window, se pueden ir haciendo vistas previas. Para
ello hacer click en ( ) de la barra de herramientas del pintor de Window.
| |
El window (ventana) creado se guarda en una de las librería PBL. Para
ello, selecionar SAVE del File Menu, o hacer click en el icono ( ) de la barra de herramientas del pintor window , a continuación aparecerá una pantalla digitar el nombre
del window.
|
| |
Al igual que se ha visto en el Painter Application y tal como se
verá en el resto de objetos de PowerBuilder, al pulsar el botón
derecho sobre la ventana y escoger la opción script, se abre la ventana
de edición de código.
Los eventos más utilizados a la hora de codificar en una
ventana son:
|
|
Evento |
Descripción
|
|
Activate: Ocurre inmediatamente después de abrirse la ventana.
La ventana activa se muestra con un título sumamente iluminado.
Clicked: Ocurre cuando se hace un click en una ventana, pero no
dentro de los controles (así como un command Bottom).
Close:Ocurre antes de que la ventana esté desactivada y cerrada.
Close Query: Los query de una ventana le dan una oportunidad de
manejar cualquier último detalle, así como guardar cualquier
cambio actual a un archivo o una tabla. El evento ocurre antes
del cierre de eventos y es posible que reuse a permitir que la ventana se cierre.
Desactivate: Este evento es impulsado antes de que la ventana llegue a estar inactiva.
Double Clicked: Ocurre cuando se hace doble click en una ventana, pero
no dentro de los controles.
DragDrop: Ocurre cuando el modo drag y el puntero drop están en
un objeto de la ventana (no dentro de un control)
DragEnter: Ocurre cuando el modo drag está en un objeto de entrada
de la ventana.
DragLeave: Ocurre cuando el modo drag está en los objetos que van a
salir de la ventana.
DragWithin: Cuando el modo drag está en los eventos que son impulsados
periódicamente mientras que un objeto está dentro de la ventana.
Hide: Esta ventana se hace invisible.
HotLinkAlarm: Ocurre después que una conexión DDE ha sido efectuada.
Key: Ocurre cuando el teclado es presionado y el foco no está
dentro de un control de edición.
MouseDown: Ocurre cuando se da click al botón izquierdo del mouse.
MouseMove: Ocurre cuando el mouse se ha movido dentro de la ventana.
Mouse Up: Ocurre cuando el botón del mouse es soltado dentro de la
ventana y el señalador no está localizado dentro de cualquier control activado.
Open: Este evento ocurre al abrirse, antes de que el usuario vea nada.
Other: Todo los eventos de la otra ventana que han sido señalados
por los eventos del PB, están ruteados en este evento,
raramente se usará este evento.
Rbutton Down: Ocurre cuando se presiona el botón derecho del mouse.
Resize: Ocurre al cambiar el tamaño de la ventana.
Show: Este evento es impulsado antes de llamar a la función show.
SystemKey: Evento impulsado antes que el usuario presione la tecla
Alt (usualmente en combinación con otra tecla) y el foco no
estará dentro de un tipo de edición activa del control.
Timer: Ocurre con intervalos específicos como colocar la función
de tiempo. El evento del tiempo es solamente impulsado si
la función del timer fue llamada.
|
Las funciones que se mencionan a continuación se aplican
específicamente a los objetos de las ventanas:
ArrangSheets: Organiza a las hojas de las ventanas en un estilo específico, como tiled o cascada.
Change Menu: Asigna el menú asociado con una ventana a una named menú
ClasName: Retorna el nombre de la ventana.
GetActiveSheet: Retorna cual es la ventana que está actualemente activa en la ventana de hoja.
Hide: Hace que la ventana se haga invisible.
Move: Cambia la ventana a una nueva posición.
ParentWindow: Retorna cual es la ventana padre.
Pointer X: Devuelve la actual posición horizontal del puntero.
Pointer Y: Devuelve la actual posición vertical del puntero.
Postevent: Adiciona un evento a la cola de mensaje de un objeto (un mensaje asincrónico).
Resize: Cambia el actual tamaño de la ventana.
SetFocus: Activa el foco de la ventana, haciendo que ésta sea la actual ventana activa.
Setmicrohelp: Asigna un texto en línea de status del MDI y lo displaya.
SetPosition: Mueve la ventana al frente o posterior a otra ventana.
SetRedraw: Enciende o apaga el estado de actualización para una ventana.
Show : Displaya una ventana.
TriggerEvent: Envía un mensaje para un evento del objeto.
TypeOff: Retorna el tipo de objeto
|
Introducción a los Controles
|
Cuando se ejecuta la aplicación los usuarios interactúan generalmente con
los controles colocados en la ventana (window).
Hay dos tipos de controles :
- Controles que tienen eventos
- Controles sin eventos (Group Boxes y los drawing objects (objetos para dibujar)).
Hay controles para:
Mostrar y / o manipular valores:
|
ª Static text
| |
|
|
ª SingleLineEdit
| |
|
|
ª MultilineEdit
| |
|
|
ª EditMask
| |
|
|
ª CommandButton
| |
|
|
ª Data Window (control especial para la presentación de datos)
|
|
ª PictureButton
| |
|
|
ª TreeView, ListView, Tabs.
|
Hacer cambios: Incluyen los siguientes controles
|
ª CheckBox
| |
|
|
ª List Box
| |
|
|
ª DropDownListBox
| |
|
|
ª RadioButton
| |
|
Mostrar Información Gráfica :
Incluyen los siguientes controles
|
ª Graph
| |
|
|
ª HScrollBar
| |
|
|
ª VScrollBar
| |
|
Para Dibujar sobre la Ventana
|
ª GroupBox
| |
|
|
ª Line
| |
|
|
ª Oval
| |
|
|
ª Rectangle
| |
|
|
ª RoundRectangle
| |
|
|
ª Picture
| |
|
|
Colocando Controles en una Ventana
|
Para colocar un control en la ventana (window), seguir los siguientes pasos:
- Seleccionar el control del window PainterBar o del MenuControl.
- Hacer click donde se quiere colocar el control.
Después de colocar el control puede cambiar de tamaño,
definir su apariencia y comportamiento, y asociar scripts
para los eventos.
|
CAMBIANDO LAS PROPIEDADES DEL CONTROL
|
Cada control tiene propiedades que determinan su apariencia y comportamiento.

Para definir las propiedades, seguir los siguientes pasos:
- Hacer click con el botón derecho del mouse sobre el control.
- A continuación aparecerá un menú emergente con
varias opciones. (ver a la derecha)
- Seleccionar la opción propiedades (properties) del control.
- Si se prefiere, hacer doble click sobre el control y aparecerá la
ventana de propiedades del control.
|
Cuando coloque un control en una ventana
(window), PowerBuilder asigna un nombre único al control
de la siguiente manera:
prefijo de control_ + número
el número puede ser cambiado por una
palabra representativa para el control.
Para el ejemplo el prefijo del control comand button será:
cb_grabar1
| |
|
A continuación, se muestra una lista con los principales controles y sus prefijos:
|
Cambiando el Texto de un Control
|
El pintor de ventana (window), tiene una barra de estilos (StyleBar) que se
puede usar para cambiar las siguientes propiedades de texto del control seleccionado.
* el texto
* el tipo de letra
* el tamaño
* el alineamiento del texto dentro del control.
Ejemplo: Al CommandButton cb_grabar, se le desea cambiar el texto por Guardar.
Para realizar este ejemplo, seguir los siguientes pasos:
* Seleccionar el control.
* Especificar el nuevo texto en la barra de estilos (remplazar la palabra Grabar).
En PowerBuilder se puede alinear dos o más controles de la siguiente manera:
- Seleccione el control cuya posición sirva como referencia para alinear a los otros.
En nuestro caso, será determinado por el último control creado (Pastillas), en ba-
se a este control se alinearán los demás controles.
- Presione Ctrl y click a la vez y los controles que quiere alinear.
- Seleccionar Aling Controls del Menú Edit.
* Seleccione el tipo de alineamiento.
|
Igualando el espacio entre los controles
|
Con el PowerBuilder se puede igualar el espacio entre los controles de la
siguiente manera:
- Seleccione dos controles cuyo espacio es el correcto.
Ejemplo : Cultura Informática e Informática Fácil, presione Ctrl y Click.
- Seleccionar los otros controles que faltan.
- Seleccionar Space Controls del menú edit.
|
Modificando el tamaño de los controles
|
Power Builder permite modificar el tamaño de los controles de la siguiente manera:
- Seleccione el control con el tamaño correcto ejemplo : En nuestro caso será
el control Aceptar el que tiene el tamaño apropiado.
- Seleccionar los controles cuyo tamaño quiere al primer control.
Ejemplo: Sea el control Cancelar, seleccionar con el mouse los dos controles sin dejar de soltar el botón Ctrl.
- Selecionar Size Control del menú Edit.
- Seleccionar el tipo de tamaño.
|
Definiendo el Tab Order de los Controles
|
 |
|
Cuando se coloca un determinado control en la
ventana (window), PowerBuilder le asigna por default un Tab
Order (orden del foco), que es la secuencia en la cual el
focus se mueve de control a control.
|
- Seleccione el Tab Order del menú
Desing, o seleccione
de la barra de herramientas.
- Cambiar los valores para el Tab Order(0,9999), si coloca 0, ésto hace que se
salte el control.
- Repetir el procedimiento hasta obtener el Tab Order deseado.
- Seleccionar el Tab Order del menú Desing o de la barra de herramientas.
Ejemplo: Vemos que el SingleLineEdit que se encuentra a la derecha del
texto Número no es el correcto, en su lugar debería estar el tab order 20. Esto
se puede modificar seleccionando con el mouse sobre el número 40 y
luego escribimos el número 20.
|
Definiendo Teclas Aceleradoras a los Controles
|
Se puede definir teclas aceleradoras a los controles para permitir al
usuario cambiar el focus presionando Alt + Tecla Aceleradora.
Esto se obtiene colocando el signo &,
antes de la letra que va a ser la tecla aceleradora.
Ejemplo: Al commandbutton en su atributo text ( doble click sobre el control )
se colocó &Aceptar, entonces la tecla aceleradora será A, ya que el
signo & está delante de la letra A y, ésta se encuentra subrayada.
En esta ventana se muestra la mayoría de los controles. Pero pegados en la ventana,
por si solos, sin tener código (script) en cada uno de sus eventos, no
realizan ninguna acción.
Una aplicación consta básicamente de un objeto aplicación, menus, ventanas
y datawindows. Para que todos estos objetos interactuen con la data, se necesita programar en el script (ver Cap 7).
|