Ejemplos de aplicaciones con combinación de eventos
Un evento es un suceso que ocurre y para su atención se debe programar un método que controle las acciones necesarias para cada tipo de evento. A diferencia de la programación secuencial, batch por lotes o tipo consola (en la que el programador exige una secuencia estricta de aparición de los eventos), no se sabe cual será el orden de aparición de ellos pues normalmente es el usuario quien los genera según su intención. La aplicación adopta, entonces, la forma de intérprete o de máquina de estados.
Arrastrar una figura con el ratón o mouse
Se presenta la estructura mínima de un programa dirigido por eventos que permite arrastrar un rectángulo. Los elementos centrales son los tres controladores para tres eventos del mouse: presionar un botón (MouseDown), mover el ratón (MouseMove) y soltar el botón (MouseUp). Se usa un objeto variable de caracteres que contiene uno de dos valores o estados posibles para saber si se arrastra o no la figura cuando se mueve el mouse. La ventana tiene incorporada la funcionalidad clásica por haber sido heredada (derivada_de) de la clase Form. Por ello el usuario puede ampliarla, minimizarla...
clase ventana derivada_de "System.Windows.Forms.Form"
{
publicos:
los objetos xfig, yfig, anchofig, altofig, x_del_clic, y_del_clic son cantidades
el objeto con_arrastre son caracteres
el objeto graficador es un "System.Drawing.Graphics" no_crear
el objeto teclatipo es una "System.Windows.Forms.Keys"
el objeto color es un "System.Drawing.Color"
el objeto lapiz es un "System.Drawing.Pen"(sale color.Black)
el objeto Boton_de_raton es una "System.Windows.Forms.MouseButtons"
mensajes:
clic_en_boton_del_raton(entra enviador, entra raton es_un "System.Windows.Forms.MouseEventArgs")
{
es (raton.x > xfig) & (raton.x < xfig+anchofig) & (raton.y > yfig) & (raton.y < yfig+altofig) ?
si: {
copie "si" en con_arrastre
copie raton.x - xfig en x_del_clic
copie raton.y - yfig en y_del_clic
}
}
movido_el_raton(entra enviador, entra raton es_un "System.Windows.Forms.MouseEventArgs")
{
es con_arrastre="si" ? si: {
copie raton.x - x_del_clic en xfig
copie raton.y - y_del_clic en yfig
ventana.Refresh
}
}
soltado_el_boton_del_raton(entra enviador, entra raton es_un "System.Windows.Forms.MouseEventArgs")
{
copie "no" en con_arrastre
}
pintar(entra sender, entra chismoso es_un "System.Windows.Forms.PaintEventArgs")
{
copie chismoso.Graphics en graficador
graficador.DrawRectangle(sale lapiz, sale xfig, sale yfig, sale anchofig, sale altofig)
}
ventana
{
copie " Use el mouse" en ventana.text
ventana.manejador(sale "ventana.Paint", sale "pintar")
ventana.manejador(sale "ventana.MouseDown", sale "clic_en_boton_del_raton")
ventana.manejador(sale "ventana.MouseMove", sale "movido_el_raton")
ventana.manejador(sale "ventana.MouseUp", sale "soltado_el_boton_del_raton")
copie 100 en anchofig
copie 100 en altofig
copie "no" en con_arrastre
}
}
Mover una imagen con clicks en botones pegados a la ventana
Para adicionar controles .NET de Microsoft a una ventana cree como atributos los objetos apropiados (b1 y b2 de tipo Button en éste ejemplo) y agréguelos (aplicacion.agregarcontrol) en el constructor de la clase. Programe los algoritmos controladores (por ejemplo control_boton_izq en éste ejemplo) e inscríbalos como tales en el construcor (por ejemplo aplicacion.manejador (sale "b1.Click", sale "control_boton_izq") en éste ejemplo). Se usaron tres imágenes en formato JPG, dos de ellas para colocar como fondo en los botones (para eso se llevan al atributo público BackgroundImage de ellos) y la tercera es la que se moverá.
clase aplicacion derivada_de "System.Windows.Forms.Form"
privados:
los objetos x, y son cantidades
el objeto imagen es un "System.Drawing.Bitmap" (sale "dibujo_movil.JPG")
el objeto imagen_boton_izq es un "System.Drawing.Bitmap" (sale "dibujo_flecha_izquierda.JPG")
el objeto imagen_boton_der es un "System.Drawing.Bitmap" (sale "dibujo_flecha_derecha.JPG")
los objetos b1, b2 son "System.Windows.Forms.Button"
el objeto g es un "System.Drawing.Graphics" no_crear
publicos:
mensajes
pintura (entra E, entra CH es_un "System.Windows.Forms.PaintEventArgs")
{
copie CH.Graphics en g
g.Drawimage (sale imagen, sale x, sale y)
}
control_boton_izq (entra E, entra CH es_un "System.EventArgs")
{
copie x-1 en x
aplicacion.refresh
}
control_boton_der (entra E, entra CH es_un "System.EventArgs")
{
copie x+1 en x
aplicacion.refresh
}
aplicacion
{
aplicacion.agregarcontrol (sale "b1")
aplicacion.agregarcontrol (sale "b2")
el objeto posicion_b2 es un "System.Drawing.Point" (sale 50, sale 0)
copie posicion_b2 en b2.Location
copie imagen_boton_izq en b1.BackgroundImage
copie imagen_boton_der en b2.BackgroundImage
el objeto tamaño es un "System.Drawing.size" (sale 60, sale 30)
copie tamaño en b2.size
copie 50 en x,y
aplicacion.manejador (sale "b1.Click", sale "control_boton_izq")
aplicacion.manejador (sale "b2.Click", sale "control_boton_der")
aplicacion.manejador (sale "aplicacion.Paint", sale "pintura")
}
Dos botones para girar una imagen
El ejemplo anterior ha sido modificado para que los botones hagan girar la figura. Observe que el mensaje RotateTransform (giro) se refiere al sistema de coordenadas del graficador que inicialmente coincide con el sistema de coordenadas del área del usuario tanto en el sitio como en su orientación. Eso quiere decir que lo que se ordene dibujar a continuación tiene el efecto del giro, a menos que se restituya con otro giro pero con ángulo negativo. El giro ocurre respecto al origen de coordenadas ó 0,0 pues los dos sistemas aún coinciden en ubicación pero ya no en orientación.
clase aplicacion derivada_de "System.Windows.Forms.Form"
privados:
los objetos angulo son cantidades
el objeto imagen es un "System.Drawing.Bitmap" (sale "dibujo_movil.JPG")
el objeto imagen_boton_izq es un "System.Drawing.Bitmap" (sale "dibujo_flecha_izquierda.JPG")
el objeto imagen_boton_der es un "System.Drawing.Bitmap" (sale "dibujo_flecha_derecha.JPG")
los objetos b1, b2 son "System.Windows.Forms.Button"
el objeto g es un "System.Drawing.Graphics" no_crear
publicos:
mensajes
pintura (entra E, entra CH es_un "System.Windows.Forms.PaintEventArgs")
{
copie CH.Graphics en g
g.RotateTransform(sale angulo)
g.Drawimage (sale imagen, sale 0, sale 0)
}
control_boton_izq (entra E, entra CH es_un "System.EventArgs")
{
copie angulo-1 en angulo
aplicacion.refresh
}
control_boton_der (entra E, entra CH es_un "System.EventArgs")
{
copie angulo+1 en angulo
aplicacion.refresh
}
aplicacion
{
aplicacion.agregarcontrol (sale "b1")
aplicacion.agregarcontrol (sale "b2")
el objeto posicion_b1 es un "System.Drawing.Point" (sale 50, sale 0)
el objeto posicion_b2 es un "System.Drawing.Point" (sale 110, sale 0)
copie posicion_b1 en b1.Location
copie posicion_b2 en b2.Location
copie imagen_boton_izq en b1.BackgroundImage
copie imagen_boton_der en b2.BackgroundImage
el objeto tamaño es un "System.Drawing.size" (sale 60, sale 30)
copie tamaño en b1.size
copie tamaño en b2.size
copie 0 en angulo
aplicacion.manejador (sale "b1.Click", sale "control_boton_izq")
aplicacion.manejador (sale "b2.Click", sale "control_boton_der")
aplicacion.manejador (sale "aplicacion.Paint", sale "pintura")
}
Giro de una figura respecto a un punto pivote
Observe que en éste ejemplo se dice dónde debe ocurrir el giro mediante el traslado (TranslateTransform) del sistema de coordenadas del graficador al punto 200, 100 antes de su giro.
clase aplicacion derivada_de "System.Windows.Forms.Form"
privados:
los objetos angulo son cantidades
el objeto imagen es un "System.Drawing.Bitmap" (sale "dibujo_movil.JPG")
el objeto imagen_boton_izq es un "System.Drawing.Bitmap" (sale "dibujo_flecha_izquierda.JPG")
el objeto imagen_boton_der es un "System.Drawing.Bitmap" (sale "dibujo_flecha_derecha.JPG")
los objetos b1, b2 son "System.Windows.Forms.Button"
el objeto g es un "System.Drawing.Graphics" no_crear
publicos:
mensajes
pintura (entra E, entra CH es_un "System.Windows.Forms.PaintEventArgs")
{
copie CH.Graphics en g
g.TranslateTransform(sale 200, sale 100)
g.RotateTransform(sale angulo)
g.Drawimage (sale imagen, sale 0, sale 0)
}
control_boton_izq (entra E, entra CH es_un "System.EventArgs")
{
copie angulo-1 en angulo
aplicacion.refresh
}
control_boton_der (entra E, entra CH es_un "System.EventArgs")
{
copie angulo+1 en angulo
aplicacion.refresh
}
aplicacion
{
aplicacion.agregarcontrol (sale "b1")
aplicacion.agregarcontrol (sale "b2")
el objeto posicion_b1 es un "System.Drawing.Point" (sale 50, sale 0)
el objeto posicion_b2 es un "System.Drawing.Point" (sale 110, sale 0)
copie posicion_b1 en b1.Location
copie posicion_b2 en b2.Location
copie imagen_boton_izq en b1.BackgroundImage
copie imagen_boton_der en b2.BackgroundImage
el objeto tamaño es un "System.Drawing.size" (sale 60, sale 30)
copie tamaño en b1.size
copie tamaño en b2.size
copie 0 en angulo
aplicacion.manejador (sale "b1.Click", sale "control_boton_izq")
aplicacion.manejador (sale "b2.Click", sale "control_boton_der")
aplicacion.manejador (sale "aplicacion.Paint", sale "pintura")
}
Haga composición con sus propias clases
La aplicación ventana hace uso de la clase cir que permite crear objetos tipo círculo que se saben mover hacia la derecha (muevase_der) y pintar (pintese) cuando se les ordene. Con ella crea dos atributos círculos (circu1 y circu2) a los cuales les ordena pintarse y a uno moverse. Observe que al ordenar pintarse debe enviarle el graficador disponible. Además pinta una línea como trabajo propio de la aplicación.
/*demo56_composicion.lx*/
/*incluya "riosur00.lx"*/
clase cir
privados:
los objetos x, y, r son cantidades
el objeto color es un "System.Drawing.Color"
el objeto lapiz es un "System.Drawing.Pen"(sale color.Red, sale 2)
publicos:
mensajes:
cir(entra xe, entra ye, entra re)
{
copie xe en x
copie ye en y
copie re en r
}
pintese(entra g es un "System.Drawing.Graphics")
{
g.DrawEllipse(sale lapiz, sale x, sale y, sale 2*r, sale 2*r)
}
muevase_der copie x + 1 en x
/********************************************************************/
clase ventana derivada_de "System.Windows.Forms.Form"
{
publicos:
el objeto temporizador es un "System.Windows.Forms.Timer"
el objeto graficador es un "System.Drawing.Graphics" no_crear
el objeto color es un "System.Drawing.Color"
el objeto lápiz es un "System.Drawing.Pen"(sale color.Blue, sale 3)
el objeto circu1, circu2 son cir(sale 10, sale 10, sale 10)
mensajes:
mi_controlador_de_pintura(entra objeto_enviador, entra chismoso es_un "System.Windows.Forms.PaintEventArgs")
{
copie chismoso.Graphics en graficador
graficador.DrawLine(sale lápiz, sale 0, sale 0, sale 100, sale 100)
circu1.pintese(sale graficador)
circu2.pintese(sale graficador)
}
mi_controlador_de_temporizador(entra objeto_enviador, entra chismoso es_un "System.EventArgs")
{
circu1.muevase_der
ventana.Refresh
}
ventana
{
copie " Mi séptima ventana (con control de un evento temporizador)" en ventana.Text
ventana.manejador(sale "temporizador.Tick", sale "mi_controlador_de_temporizador")
ventana.manejador(sale "ventana.Paint", sale "mi_controlador_de_pintura")
temporizador.Start
}
}
Composición con clases propias mejorable
Este ejemplo será mejorado. Aquí se usan las clases cir y lin para crear los objetos circu1, circu2 y tablon que siempre deben ser manipulados de manera que la figura formada por esas tres partes permanezca como una unidad. Mejora solo en que la aplicación no pinta parte de la figura (la línea que no es un objeto) sino que ella está representada por otro objeto que posee su propia operatividad.
/*demo56_doble_composicion.lx*/
clase cir
privados:
los objetos x, y, r son cantidades
el objeto color es un "System.Drawing.Color"
el objeto lapiz es un "System.Drawing.Pen"(sale color.Red, sale 2)
publicos:
mensajes:
cir(entra xe, entra ye, entra re)
{
copie xe en x
copie ye en y
copie re en r
}
pintese(entra g es un "System.Drawing.Graphics")
{
g.DrawEllipse(sale lapiz, sale x, sale y, sale 2*r, sale 2*r)
}
muevase_der copie x + 1 en x
/********************************************************************/
clase lin
privados:
los objetos x1, y1, x2, y2 son cantidades
el objeto color es un "System.Drawing.Color"
el objeto lapiz es un "System.Drawing.Pen"(sale color.Yellow, sale 3)
publicos:
mensajes:
lin(entra x1e, entra y1e, entra x2e, entra y2e)
{
copie x1e en x1
copie y1e en y1
copie x2e en x2
copie y2e en y2
}
pintese(entra g es un "System.Drawing.Graphics")
{
g.Drawline(sale lapiz, sale x1, sale y1, sale x2, sale y2)
}
muevase_der
{
copie x1 + 1 en x1
copie x2 + 1 en x2
}
/********************************************************************/
clase ventana derivada_de "System.Windows.Forms.Form"
{
publicos:
el objeto temporizador es un "System.Windows.Forms.Timer"
el objeto graficador es un "System.Drawing.Graphics" no_crear
el objeto circu1, circu2 son cir(sale 10, sale 10, sale 10)
el objeto tablon es una lin(sale 30, sale 20, sale 50, sale 20)
mensajes:
mi_controlador_de_pintura(entra objeto_enviador, entra chismoso es_un "System.Windows.Forms.PaintEventArgs")
{
copie chismoso.Graphics en graficador
/*Se ordena pintarse a los tres elementos*/
circu1.pintese(sale graficador)
circu2.pintese(sale graficador)
tablon.pintese(sale graficador)
}
mi_controlador_de_temporizador(entra objeto_enviador, entra chismoso es_un "System.EventArgs")
{
/*Se desarma y vuelve a armar un paso más adelante*/
circu1.muevase_der
circu2.muevase_der
tablon.muevase_der
ventana.Refresh
}
ventana
{
ventana.manejador(sale "temporizador.Tick", sale "mi_controlador_de_temporizador")
ventana.manejador(sale "ventana.Paint", sale "mi_controlador_de_pintura")
temporizador.Start
/*Se desplaza circu2 para armar la patineta*/
el objeto i es una cantidad
variando i desde 10 hasta 50 haga:
circu2.muevase_der
}
}
Composición de una figura
Se crean las clases cir y lin y con ellas se compone la clase patineta. Con la clase patineta se crea un objeto figura que posee en su interior los elementos componentes (rueda izquierda, rueda derecha y tablón) pero que ésta vez es manejada como una sola entidad facilitando su uso y haciendo el código más limpio y legible.
/*demo56_triple_composicion.lx*/
clase cir
privados:
los objetos x, y, r son cantidades
el objeto color es un "System.Drawing.Color"
el objeto lapiz es un "System.Drawing.Pen"(sale color.Red, sale 2)
publicos:
mensajes:
cir(entra xe, entra ye, entra re)
{
copie xe en x
copie ye en y
copie re en r
}
pintese(entra g es un "System.Drawing.Graphics")
{
g.DrawEllipse(sale lapiz, sale x, sale y, sale 2*r, sale 2*r)
}
muevase_der copie x + 1 en x
/********************************************************************/
clase lin
privados:
los objetos x1, y1, x2, y2 son cantidades
el objeto color es un "System.Drawing.Color"
el objeto lapiz es un "System.Drawing.Pen"(sale color.Yellow, sale 3)
publicos:
mensajes:
lin(entra x1e, entra y1e, entra x2e, entra y2e)
{
copie x1e en x1
copie y1e en y1
copie x2e en x2
copie y2e en y2
}
pintese(entra g es un "System.Drawing.Graphics")
{
g.Drawline(sale lapiz, sale x1, sale y1, sale x2, sale y2)
}
muevase_der
{
copie x1 + 1 en x1
copie x2 + 1 en x2
}
/********************************************************************/
clase patineta
privados:
los objetos rueda_izq, rueda_der son cir(sale 10, sale 10, sale 10)
el objeto tablon es una lin(sale 30, sale 20, sale 50, sale 20)
publicos:
mensajes:
patineta
{
/*Se desplaza rueda_der para armar la patineta*/
el objeto i es una cantidad
variando i desde 10 hasta 50 haga:
rueda_der.muevase_der
}
pintese(entra g es un "System.Drawing.Graphics")
{
rueda_izq.pintese(sale g)
rueda_der.pintese(sale g)
tablon.pintese(sale g)
}
muevase_der
{
rueda_izq.muevase_der
rueda_der.muevase_der
tablon.muevase_der
}
/********************************************************************/
clase ventana derivada_de "System.Windows.Forms.Form"
{
publicos:
el objeto temporizador es un "System.Windows.Forms.Timer"
el objeto figura es una patineta
mensajes:
mi_controlador_de_pintura(entra objeto_enviador, entra chismoso es_un "System.Windows.Forms.PaintEventArgs")
{
figura.pintese(sale chismoso.Graphics) /*Solo se da orden a un objeto*/
}
mi_controlador_de_temporizador(entra objeto_enviador, entra chismoso es_un "System.EventArgs")
{
figura.muevase_der /*Solo se da orden a un objeto*/
ventana.Refresh
}
ventana
{
ventana.manejador(sale "temporizador.Tick", sale "mi_controlador_de_temporizador")
ventana.manejador(sale "ventana.Paint", sale "mi_controlador_de_pintura")
temporizador.Start
}
}
Cómo mostrar una segunda ventana con click en botón derecho del mouse
Defina una clase dependiente (control_de_entrada en éste ejemplo) de la aplicación (ventana en éste ejemplo). Para ello en la aplicación establezca un atributo del tipo control_de_entrada y cuando necesite en alguno de sus métodos muestre ese objeto (en éste ejemplo se muestra el objeto receptor cuando el usuario hace click con el botón derecho del ratón). El temporizador se usó solo para tener referencia de un proceso que avanza independientemente de los deseos del usuario final.
/*demo57_control_entradas.lx*/
clase control_de_entrada derivada_de "System.Windows.Forms.Form"
{
publicos:
el objeto boton_aceptar es un "System.Windows.Forms.Button"
mensajes:
aceptar (entra objeto_enviador, entra chismoso es_un "System.EventArgs")
nop
control_de_entrada
{
copie " Entre datos" en control_de_entrada .Text
control_de_entrada.manejador(sale "boton_aceptar.Click", sale "aceptar")
}
}
/*********************************************************************/
clase ventana derivada_de "System.Windows.Forms.Form"
{
publicos:
el objeto temporizador es un "System.Windows.Forms.Timer"
el objeto graficador es un "System.Drawing.Graphics" no_crear
el objeto color es un "System.Drawing.Color"
el objeto lápiz es un "System.Drawing.Pen"(sale color.Blue, sale 3)
el objeto boton_tipo es un "System.Windows.Forms.MouseButtons"
el objeto receptor es un control_de_entrada
los objetos x, y son cantidades
mensajes:
mi_controlador_de_pintura(entra objeto_enviador, entra chismoso es_un "System.Windows.Forms.PaintEventArgs")
{
copie chismoso.Graphics en graficador
graficador.DrawLine(sale lápiz, sale x, sale y, sale 100, sale 100)
}
mi_controlador_de_temporizador(entra objeto_enviador, entra chismoso es_un "System.EventArgs")
{
copie x + 1 en x
ventana.Refresh
}
clic_en_boton_del_raton(entra enviador, entra raton es_un "System.Windows.Forms.MouseEventArgs")
{
es raton.Button=boton_tipo.Right ?
si: {
receptor.ShowDialog
}
}
ventana
{
copie " Un control activado con el click derecho del ratón" en ventana.Text
ventana.manejador(sale "ventana.MouseDown", sale "clic_en_boton_del_raton")
ventana.manejador(sale "temporizador.Tick", sale "mi_controlador_de_temporizador")
ventana.manejador(sale "ventana.Paint", sale "mi_controlador_de_pintura")
temporizador.Start
copie 10 en x, y
}
}
Etiqueta o label y caja de texto o TextBox
El ejemplo muestra una ventana tipo control que permite ingresar datos. No olvide tener tres archivos con imágenes.
/*demo57_etiquetasYentradas.lx*/
clase control_de_entrada derivada_de "System.Windows.Forms.Form"
{
publicos:
el objeto etiqueta_1, etiqueta_2 es un "System.Windows.Forms.Label"
el objeto entrada_1, entrada_2 es un "System.Windows.Forms.TextBox"
el objeto boton_aceptar es un "System.Windows.Forms.Button"
el objeto nombre son caracteres
mensajes:
aceptar (entra objeto_enviador, entra chismoso es_un "System.EventArgs")
{
copie entrada_1.Text en nombre
muestre nombre, " aceptaste y se destruirá ésta ventana."
control_de_entrada.close
}
control_de_entrada
{
control_de_entrada.agregarcontrol(sale "etiqueta_1")
control_de_entrada.agregarcontrol(sale "etiqueta_2")
control_de_entrada.agregarcontrol(sale "entrada_1")
control_de_entrada.agregarcontrol(sale "entrada_2")
control_de_entrada.agregarcontrol(sale "boton_aceptar")
control_de_entrada.manejador(sale "boton_aceptar.Click", sale "aceptar")
copie " Entre datos" en control_de_entrada .Text
/* ubicar los controles: */
el objeto u_etiqueta_1 es un "System.Drawing.Point"(sale 20, sale 20)
copie u_etiqueta_1 en etiqueta_1.Location
el objeto u_etiqueta_2 es un "System.Drawing.Point"(sale 20, sale 40)
copie u_etiqueta_2 en etiqueta_2.Location
el objeto u_entrada_1 es un "System.Drawing.Point"(sale 140, sale 20)
copie u_entrada_1 en entrada_1.Location
el objeto u_entrada_2 es un "System.Drawing.Point"(sale 140, sale 40)
copie u_entrada_2 en entrada_2.Location
el objeto u_boton_aceptar es un "System.Drawing.Point"(sale 100, sale 80)
copie u_boton_aceptar en boton_aceptar.Location
/* crear y colocar las imágenes */
el objeto im_etiqueta_1 es un "System.Drawing.Bitmap"(sale "im_etiqueta_1.PNG")
copie im_etiqueta_1 en etiqueta_1.Image
el objeto im_etiqueta_2 es un "System.Drawing.Bitmap"(sale "im_etiqueta_2.PNG")
copie im_etiqueta_2 en etiqueta_2.Image
el objeto im_boton_aceptar es un "System.Drawing.Bitmap"(sale "im_boton_aceptar.PNG")
copie im_boton_aceptar en boton_aceptar.Image
el objeto forma es un "System.Windows.Forms.FormBorderStyle"
copie forma.FixedDialog en control_de_entrada.FormBorderStyle
copie falso en control_de_entrada.ControlBox
}
}
Una barra desplazable para entrar datos
La clase TrackBar permite crear y usar objetos tipo barra que posibilitan la entrada de datos mediante el arrastre de una seña con el mouse o con las flechas del teclado. No olvide agregar a la ventana el control creado enviándole el mensaje agregarcontrol. También recuerde inscribir el método controlador para los eventos Scroll que ocurran en la barra. El atributo Value está disponible con el valor marcado por el usuario final.
/*demo58_BarraDeEntrada2.lx*/
clase control_de_entrada derivada_de "System.Windows.Forms.Form"
{
publicos:
el objeto barra es un "System.Windows.Forms.TrackBar"
el objeto valor es una cantidad
mensajes:
controlador_de_la_barra (entra objeto_enviador, entra chismoso es_un "System.EventArgs")
{
copie barra.Value en valor
}
controlador_de_mouse (entra objeto_enviador, entra chismoso es_un "System.Windows.Forms.MouseEventArgs")
{
muestre "Valor entrado con la barra: ", valor
}
control_de_entrada
{
control_de_entrada.agregarcontrol(sale "barra")
control_de_entrada.manejador(sale "barra.Scroll", sale "controlador_de_la_barra")
copie " Entre datos con la barra desplazable (haga click para ver el valor entrado)" en control_de_entrada .Text
el objeto u_barra es un "System.Drawing.Point"(sale 20, sale 20)
copie u_barra en barra.Location
control_de_entrada.manejador(sale "control_de_entrada.MouseDown", sale "controlador_de_mouse")
}
}
Vea aquí más ejemplos de programación con eventos utilizando el lenguaje Lexico (Oct.8.2006)
También puede encontrar ejemplos en:
Artículos
Programas de ejemplo
Trabajos de estudiantes
También se presentan ejemplos en los foros
|