Una ventana en programación

publicado en: GUI | 0

El proceso de crear una ventana en BlitzMax NG se resume en un simple comando denominado CreateWindow que en otros lenguajes para usuarios noveles puede ser una tortura en codificación. No mas es mirar este ejemplo.

Por lo tanto, se puede decir con certeza, que esto aquí es muy fácil, solo es implementar esa función, y listo ya tenemos las ventanas que creamos necesarias.

Definiendo el objeto para crear la ventana

Para crear el objeto ventana, debemos definirla en base a la clase TGadget, esta clase o tipo no solo permite crear ventanas, si no igualmente botones, etiquetas, cajas de texto etc.

Local miVentana:TGadGet = CreateWindow("Titulo Ventana",0,0, 100,100, null )

Sin embargo para que esto funcione como se espera, es necesario importar el módulo “MaxGui.Drivers” antes de usar el anterior comando. Esto se hace usando la palabra reservada “Import”.

Import MaxGui.Drivers
Local miVentana:TGadGet = CreateWindow("Titulo Ventana",0,0, 100,100, null )

El resultado anterior es que se crea una ventana en la esquina superior izquierda, con un tamaño de 100 unidades de alto y 100 unidades de ancho. Con un parámetro nulo que dice que no tiene otro Gadget como padre.

Esto al momento no es practico, pues al ejecutar la aplicación no se visualiza nada, entonces es necesario implementar un bucle que mantenga vivo el programa.

Repeat
       WaitEvent()

For Ever

Dentro de este bucle se escribe el código que permite interactuar con la ventana creada. En este caso usamos “WaitEvent” para preparar la ventana para que reciba eventos que son causados por ejemplo cuando presionamos el botón cerrar de la barra de t itulo.

Repeat
       WaitEvent()
       Select EventID()
		Case  EVENT_WINDOWCLOSE
		Exit
	End Select

For Ever

En este caso, cuando se presione el botón de salir de la barra de titulo, usamos el comando “Exit”, para salir del bucle principal de la aplicación y posteriormente al no existir más código se da por finalizado el programa.

Existen muchos tipos de eventos para las ventanas, pero mediante el siguiente comando es posible visualizar cuales están sucediendo.

Repeat
       WaitEvent()
       
       Print CurrentEvent.ToString()
       Select EventID()
		Case  EVENT_WINDOWCLOSE
		Exit
	End Select

For Ever

Con el comando CurrentEvent.ToString(), en el depurador vemos si la ventana se esta moviendo cuando la arrastramos, esta cambiando de tamaño o ha sido suspendida al minimizarla, eso entre otros eventos.

Parámetros al momento de crear ventanas.

CreateWindow(titulo:String, x:int, y:int, ancho:Int, alto:int, grupo:TGadget = null, estilo:int = WINDOW_DEFAULT)

titulo: Cadena de texto que establece lo que se muestra en la barra de titulo.
x, y : Coordenadas donde se posiciona la ventana en los respectivos ejes x, y. La coordenada 0, 0 en ambos ejes equivale a al esquina superior izquierda de la pantalla.
ancho : Ancho de la ventana.
alto : Alto de la ventana.
grupo : Tipo de dato que apunta a un objeto TGadget que será como padre de la ventana, valor por defecto “Null”.
estilo : Se establece que el estilo que debe tener la ventana. El valor por defecto es WINDOW_DEFAULT, una ventana con una barra de titulo, sus tres botones funcionales en la parte superior y la barra de estado.

Parámetros de estilo para una ventana.

Las ventanas que creamos puede tener muchos estilos que varían entre como se visualiza y su posible comportamiento. La siguiente tabla muestra las constantes para sus respectivos estilos.

Estilos para una Ventana
Estilos para una Ventana

La anterior tabla muestra todas las constantes posibles para aplicar sobre las ventanas en el parámetro estilo al momento de ser creadas. Nota: Para proyectos multiplataforma, se recomienda encarecidamente que el estilo de WINDOW_CLIENTCOORDS se utilice para mantener diseños similares con diferentes sistemas operativos y administradores de ventanas.

El estilo para las ventanas por defecto (WINDOW_DEFAULT) es equivalente a WINDOW_TITLEBAR WINDOW_RESIZABLE de la casa de los WINDOW_MENU de la casa de los WINDOW_STATUS.

Y estos son los eventos que puede recibir las ventanas.

Eventos de Ventana
Eventos de Ventana

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *