You are on page 1of 8

COMPUTACIN II

INGENIERA DE SISTEMAS E INFORMTICA

EVENTOS Y OBJETOS DE USUARIO


Cada objeto visual manipulado en PowerBuilder posee un conjunto de eventos
predefinidos, los cuales son usados para programar las tareas de los diferentes
objetos, a su vez a los objetos se le pueden asignar otros eventos definidos por el
usuario o programador y que sern propios para el mismo objeto.
CREAR EVENTO DE USUARIO:
Para crear un evento de usuario en primer lugar se debe activar el objeto o control,
luego hacer clic en Insert y clic en Event.

Luego se debe indicar lo siguiente:

ReturnType: el tipo de dato que retorna el evento


EventName: indica el nombre del evento
Pass By: indica el tipo de paso del argumento(value, reference o readonly)
ArgumentType: indica el tipo de dato del argumento
ArgumentName: indica el nombre del argumento
External: indica si el evento ser usado como externo
Event ID: indica el identificador de evento, generalmente usar los
pbm_custom como identificadores de eventos de usuario.

NOTA:si el evento no tiene argumentos, eliminar la seccin de argumentos con


clic derecho y clic deleteparameter.
Luego se programa el Script del evento de usuario creado.

EVENTOS Y OBJETOS DE USUARIOPgina 1

COMPUTACIN II
INGENIERA DE SISTEMAS E INFORMTICA

Para llamar a los eventos de usuario se usan el mtodo postevent de la siguiente


manera:
Parent.postevent(nombre_evento)
This.postevent(nombre_evento)
Ejemplo:
Parent.postevent(ue_nuevo)

EVENTOS Y MENSAJES
En el sistema operativo MS-Windows, la notificacin de eventos a las aplicaciones
se realiza por s mismo por MS-Windows, mediante el envo de mensajes
apropiados. Mover el ratn sera un ejemplo sencillo; cuando se mueve el ratn,
MS-Windows enva un mensaje WM_MOUSEMOVE a la ventana en la que se
encuentra el puntero del ratn. Este mensaje tiene tres parmetros, la posicin del
cursor horizontal (coordenada X), de posicin vertical (coordenada Y) y un
parmetro que tiene banderas que dicen que el botn del ratn est presionado
etc. La aplicacin responde a Windows ejecutando el cdigo escrito para que
evento.
Si la aplicacin de la ventana actual (en el ejemplo anterior) o de hecho cualquier
aplicacin (en algunos mensajes) no responde al mensaje de Windows, MS
Windows toma accin predeterminada en funcin del mensaje. En el ejemplo
anterior, si slo hay que mover el ratn en "Gestor de programas", no pasa
nada. Eso es porque, el "Gestor de programas", que es una aplicacin de
Windows que no quiere hacer nada cuando slo tiene que mover el ratn. Para
dar otro ejemplo, MS-Word responde mostrando la ayuda barra de herramientas
(en color amarillo) cuando el puntero del ratn se mueve sobre la barra de
herramientas de MS-Word.
Mira otro ejemplo, en Windows NT, que es ms robusto que el MS-Windows,
pruebe el cierre de la estacin de trabajo cuando una aplicacin se est
ejecutando algo en un bucle; Qu pasara? Dado que la aplicacin est ocupada
ejecutando el cdigo, que no responde a los mensajes del sistema operativo
"cerrar por s mismo", por lo que, OS Windows NT pregunta diciendo que si usted
quiere terminar la tarea. As, en el primer ejemplo, la accin predeterminada de
Windows no hace nada, donde como el ltimo solicita al usuario.

EVENTOS Y OBJETOS DE USUARIOPgina 2

COMPUTACIN II
INGENIERA DE SISTEMAS E INFORMTICA

Todos los mensajes en Windows se pueden dividir en tres categoras: Informativo,


notificacin y Accin.
TIPO DE
MENSAJE
Informativo
Notificacin

Accin

DESCRIPCIN
Mensajes informativos que retornan el estado actual del objeto.
Por ejemplo, si un objeto o su color de fondo es visible.
Mensajes de notificacin que informan si se ha hecho algo con
el objeto. Por ejemplo, cuando se da click en un
CommandButton, Windows le avisa al CommandButton que
Han clickeado sobre l, mediante el envio de un mensaje
apropiado.
Mensajes de Accin que hacen algo a un objeto. Por ejemplo,
aadir una entrada o un ListBox o crear un objeto.

Desde la perspectiva de aplicacin de MS Windows, los eventos en la aplicacin


son provocados por los mensajes de MS-Windows. Las aplicaciones responden al
mensaje MS Windows mediante la ejecucin del cdigo escrito para ese
evento. En trminos simples, cada evento (no cada evento, se explicar ms
adelante) en PowerBuilder est asignado a uno u otro mensaje de MSWindows. Para el ejemplo WM_MOUSEMOVE explic anteriormente, la ventana
del objeto PowerBuilder tiene un evento "mousemove". Este evento se asigna al
mensaje WM_MOUSEMOVE. En PowerBuilder, el id del mensaje asignado tiene
una capa extra. Es decir, cada mensaje de Windows se asigna al mismo id de
mensaje en PowerBuilder sustituyendo "WM" (Mensaje de Windows) con "PBM"
(PowerBuilder Mensaje) y se llama "Event ID". El mensaje WM_MOUSEMOVE de
Windows se asigna a "pbm_mousemove" PowerBuilder Event ID. El evento
"mousemove" es a su vez asignada a "pbm_mousemove".

Como se ha dicho anteriormente, la mayora de todos los mensajes de windows se


asignan a PowerBuilder Event Id. PowerBuilder predefine algunos nombres de
eventos y les asigna a los identificadores de eventos de cada objeto. Por ejemplo,
un CommandButton tiene los siguientes eventos predefinidos.

EVENTOS Y OBJETOS DE USUARIOPgina 3

COMPUTACIN II
INGENIERA DE SISTEMAS E INFORMTICA

Al observar el cuadro anterior se puede ver que eventos mousemove no est


predefinido para el control CommandButton, pero es predefinido por la
ventana. Por qu PowerBuilder no definir todos los nombres de eventos para
cada objeto? PowerBuilder predefine eventos que se utilizan con ms frecuencia y
requeridos por el objeto predefinido. Desea que se muestre la ventana de
MicroHelp cada vez que un CommandButton obtiene el foco, a continuacin,
escriba la escritura en el "GetFocus" (PowerBuilder distingue entre maysculas y
minsculas) de la siguiente manera:
/* w_frame window es asumido como una ventana MDI con la ventana de microhelp*/
w_frame.SetMicroHelp( This.Tag )

Es posible que desee para mostrar la ayuda flotante para botones de la aplicacin
(como el que se ve cuando se mueve el puntero del ratn sobre la barra de
herramientas de PowerBuilder). En ese caso, la escritura de cdigo en el evento
"GetFocus" no ayudara, porque, el evento "GetFocus" se dispara slo cuando el
usuario cambia en el CommandButton especificado o es llamado con el SetFocus
() en la PowerScript. Lo que realmente se quiere es que para mostrar la ayuda
siempre que el puntero del ratn se debe mover sobre el CommandButton.

EVENTOS Y OBJETOS DE USUARIOPgina 4

COMPUTACIN II
INGENIERA DE SISTEMAS E INFORMTICA

Slo por esto, PowerSoft se prevee para definir eventos y asignndolos a uno de
los eventos disponibles. Eventos que defina si se clasifican como "eventos
definidos por el usuario." Es necesario seleccionar "declarar / evento de
usuario" en el men. La siguiente imagen muestra la definicin de evento
"ue_mousemove" para un CommandButton mediante la asignacin a la
"pbm_mousemove" Identificacin del evento.
Proporcione un nombre bajo el "Nombre del evento" y seleccione uno de los
identificadores de sucesos existentes de la "Paste Evento Id" ListBox (Seleccionar
Event ID no es obligatorio).
Un identificador de evento se puede asignar a uno el nombre del evento en cada
nivel objeto. No se puede desasignar eventos predefinidos. Si usted no quiere que
le pase nada cuando se produce un evento, entonces simplemente no escriba el
script para ese evento.
La siguiente figura ilustra la clasificacin de eventos y asignaciones vlidos.

EVENTOS Y OBJETOS DE USUARIOPgina 5

COMPUTACIN II
INGENIERA DE SISTEMAS E INFORMTICA

Podemos dividir los identificadores de eventos PowerBuilder en tres categoras.


CATEGORIA
DE LOS
EVENT ID
Eventos
Regulares de
las Ventanas
Eventos
personalizado
s
Eventos de
Visual Basic

DESCRIPTION
Estos identificadores de Eventos son asignados a la ventana
Eventos Id. En cada nivel de los objetos, algunos id de eventos
estn asignados a algunos nombres de eventos. Por ejemplo el
evento Clicked, que dispara automticamente cuando el usuario
clickea en un CommandButton.
Hay 75 eventos personalizados con identificadores de eventos
pbm_custom01 a pbm_custom75. Cuando un evento definido por
el usuario se define y se asigna al evento personalizado, el script
no se ejecuta automticamente - usted necesita para ejecutar de
forma explcita el script.
Hay 50 eventos de Visual Basic con identificadores de eventos
pbm_vbxevent01 a pbm_vbxevent50. Estos eventos se asignan
de eventos especficos de Visual Basic.

EVENTOS Y OBJETOS DE USUARIOPgina 6

COMPUTACIN II
INGENIERA DE SISTEMAS E INFORMTICA

NOMBRAMIENTOS DE LOS IDENTIFICADORES DE EVENTOS


(EVENT ID)
NOMBRES DE LOS EVENTOS ID:
La convencin de denominacin PowerBuilder para usar eventos IDs es similar a
la convension que utiliza Windows para nombrar mensajes. Todos los eventos IDs
de Powerbuilder comienzan con pbm_.
Eventos IDs asociados con los mensajes de Windows.
Varios mensajes de Windows y notificaciones se asignan a identificadores de
eventos PowerBuilder.
Para los mensajes de Windows que comienzan con WM_, el evento ID de
PowerBuilder normalmente tienen el mismo nombre con pbm_ sustituido por WM_.
Para los mensajes de los controles, el evento ID PowerBuilder normalmente tiene
el mismo nombre pero comienza con pbm_ y el prefijo de Windows para el control
agregado al nombre del mensaje. Por ejemplo
WM_KEYDOWN se asigna como pbm_keydown
bm_getcheck (un mensaje de control del botn) se asigna como pbm_bmgetcheck
BN_CLICKED (un mensaje de notificacin de control del botn) se asigna como
pbm_bnclicked
Para ver una lista de IDs de eventos a las que puede asignar un evento definido
por el usuario, se selecciona Insertar> Evento y mostrar la lista desplegable de ID
de evento en la ventana de Prototipo que muestra.
Mensajes de Windows que no se asigna a un evento ID de PowerBuilder, se
asigna al evento ID pbm_other. El objeto PowerBuilder mensaje esta llena con
informacin sobre los eventos del sistema que no se asignan a los eventos IDs de
PowerBuilder.
IDS DE EVENTOS ASOCIADOS CON POWERBUILDER EVENTOS:
PowerBuilder tiene sus propios eventos, cada uno de los cuales tiene un
identificador de evento. Por ejemplo, el evento DragDrop de powerbuilder tiene la
pbm_dragdrop evento ID. El nombre del evento y evento ID de los eventos
predefinidos PowerBuilder estn protegidos; estos no se pueden modificar. Los
IDs de eventos para eventos predefinidos se muestran en la lista de eventos:

EVENTOS Y OBJETOS DE USUARIOPgina 7

COMPUTACIN II
INGENIERA DE SISTEMAS E INFORMTICA

EVENTOS Y OBJETOS DE USUARIOPgina 8

You might also like