eventos defnidos por el usuario.docx

download eventos defnidos por el usuario.docx

of 8

Transcript of eventos defnidos por el usuario.docx

COMPUTACIN II

COMPUTACIN IIINGENIERA 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.

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 mensajeWM_MOUSEMOVEa 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.Todos los mensajes en Windows se pueden dividir en tres categoras: Informativo, notificacin y Accin.

TIPO DE MENSAJEDESCRIPCIN

InformativoMensajes informativos que retornan el estado actual del objeto. Por ejemplo, si un objeto o su color de fondo es visible.

NotificacinMensajes 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.

AccinMensajes 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 MS-Windows.Para el ejemploWM_MOUSEMOVEexplic anteriormente, la ventana del objeto PowerBuilder tiene un evento "mousemove".Este evento se asigna al mensajeWM_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 mensajeWM_MOUSEMOVEde 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.

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 elSetFocus ()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.

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"Nombredelevento"y seleccione uno de los identificadores de sucesos existentes de la"Paste EventoId"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.

Podemos dividir los identificadores de eventos PowerBuilder en tres categoras.CATEGORIA DE LOS EVENT IDDESCRIPTION

Eventos Regulares de las VentanasEstos 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.

Eventos personalizadosHay 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.

Eventos de Visual BasicHay 50 eventos de Visual Basic con identificadores de eventos pbm_vbxevent01 a pbm_vbxevent50.Estos eventos se asignan de eventos especficos de Visual Basic.

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_keydownbm_getcheck (un mensaje de control del botn) se asigna como pbm_bmgetcheckBN_CLICKED (un mensaje de notificacin de control del botn) se asigna como pbm_bnclickedPara 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 8