https://foro.gambas-es.org/viewtopic.php?f=1&t=28
-----------------------------------
soplo
Lunes, 14 Septiembre 2009, 18:18

Uso De Formularios ¡Requiere Corrección!
-----------------------------------
El trabajo básico con formularios es parecido pero no igual que en VB.

En gambas hay dos tipos de ventanas:  Ventanas corrientes y ventanas embebidas dentro de un container. 
Una ventana puede ser o no persistente. Una ventana normal no es persistente porque cuando se cierra se destruye. Una ventana persistente cuando se cierra solo se oculta. La propiedad que decide esto es PERSISTENT
Una ventana puede ser o no modal. Las ventanas modales no pueden ser tapadas por otras ventanas.
La primera vez que se muestra una ventana se dispara el evento OPEN. Si la ventana se cerró y se vuelve a abrir de nuevo volverá a dispararse OPEN.
Para cerrar una ventana se puede pulsar el botón de cerrar o ejecutar el evento CLOSE.
Si se llama al evento CLOSE durante el evento OPEN la ventana no llega a abrirse.
La propiedad RAISE pone a la ventana en primer término si no lo estaba.
En el caso de ventanas modales cuyo tamaño se pueda modificar el tamaño mínimo será aquel con que se inició.

[color=darkred]Formularios MDI[/color]
Para crear formularios MDI hay que incluir la librería FORM.MDI.
Añadir un workspace (pestaña special)[code linenumbers=false]
PUBLIC SUB NuevoformMdi(formulario AS Form)
  Workspace1.Add(formulario.Window) ' Hay que pasar la propiedad window de la ventana
END [/code]
El objeto Workspace es un contenedor de formularios.

[color=darkred]Crear el formulario[/color]
Dim F as new form
f.open ---> abrir el formulario y mostrarlo
f.load ---> cargar el formulario y no mostrarlo
f.center ---> centrar el formulario en pantalla

[color=darkred]Cerrar el formulario[/color]
f.close

[color=darkred]Ocultar/mostrar formulario[/color]
f.hide ----> ocultar formulario
f.show ----> mostrar formulario NO MODAL
f.showmodal() ----> mostrar formulario MODAL sin retornar valor alguno cuando se cierre
f.showmodal(integer) ---> mostrar formulario MODAL retornando el parámetro cuando se cierre.

El parámetro tiene que ser un número entero.
[color=darkred]
Crear un botón y programar el evento click[/color]
[code linenumbers=false]dim b as new button
b.top=100
b.left=300
b.width=200
b.height=50
b.text="&botón"

sub b_click()
...
end sub[/code]

Este tema no está completo porque se que se puede incrustar un formulario dentro de otro, pero no lo he conseguido.


-----------------------------------
CanihoJR
Martes, 15 Septiembre 2009, 14:24

Re: Uso De Formularios ¡Requiere Corrección!
-----------------------------------
Para estas cosillas no es mas facil usar el GUI grafico? :s y el showmodal......... no entiendo su funcionamiento, q actua? como paso de variable? si hablasemos en php, es como un GET o un POST?...


-----------------------------------
soplo
Martes, 15 Septiembre 2009, 14:50

Re: Uso De Formularios ¡Requiere Corrección!
-----------------------------------
[quote]Para estas cosillas no es mas facil usar el GUI grafico?[/quote]
A menudo si, pero no siempre. Pongamos un caso en el que tienes un botón de buscar. Cada vez que el usuario pincha se le abre una pantalla de búsqueda donde puede buscar algo. Quizá se desea que cada vez que pinche se cree una ventana nueva para poder tener varias búsquedas a la vez. En ese caso necesitas poder crear formularios en linea. En este caso cada vez que el usuario pincha en buscar se le abre una ventana nueva y no pierde las anteriores.

Solo es un ejemplo.

[quote]el showmodal......... no entiendo su funcionamiento[/quote]
El showmodal sin parámetro funciona igual que en VB. Yo tampoco veo la ventaja de poder devolver un entero pero es así.

Me doy cuenta que dejé algunas cosas sin poner al hablar de formularios así que edito para dejer la documenatción completa respecto a formularios

Un saludo.


-----------------------------------
CanihoJR
Martes, 15 Septiembre 2009, 14:54

Re: Uso De Formularios ¡Requiere Corrección!
-----------------------------------
La unica utilidad que le encuentro al showmodal es conocer si una ventana esté abierta o no...... una variable global que lleve ese control........ o algo x el estilo... :S buscaré ejemplos en VB aver si le encontramos funcionalidad a esto :P ^^

Grax por tus tutos! ;)


-----------------------------------
techm3
Sabado, 06 Febrero 2010, 03:41

Re: Uso De Formularios ¡Requiere Corrección!
-----------------------------------
Podrias explicar mas a fondo para que sirve y como se programan los workspace?? en modo gráfico


-----------------------------------
soplo
Sabado, 06 Febrero 2010, 19:56

Re: Uso De Formularios ¡Requiere Corrección!
-----------------------------------
Los workspace se salen del ámbito de este hilo. Son fáciles de usar pero no me veo escribiendo un hilo sobre ellos porque apenas los conozco pues no los uso en mis aplicaciones aunque con alguna prueba que he hecho ha sido muy fácil usarlos. Tengo algo escrito por ahí sobre alguna prueba que hice con uno y fue muy simple. Lo único que haces es crear el workspace, agregarlos los windows que quieras y a cada window agregarle los controles que quieras. 

Muy simple.
[url=http://foro.gambas-es.org/viewtopic.php?f=4&t=369&postdays=0&postorder=asc&start=0]http://foro.gambas-es.org/viewtopic.php?f=4&t=369&postdays=0&postorder=asc&start=0

Un saludo


