Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
¿Como Usar Variables De Un Form Desde Otro?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje ¿Como Usar Variables De Un Form Desde Otro? 
 
Hola!
La consulta de hoy es muy simple:

Tengo un formulario (fForm1) desde el que muestro otro (fForm2). En el fForm2 tengo un par de textbox cuyo contenido quiero leer desde fForm1, y.... no se como hacerlo.

Otra duda que tengo es que pasa cuando el fForm2 se cierra: el contenido de esos textbox seguramente ya no estará disponible ¿verdad?

Una alternativa sería tener variables globales (o como se llamen) que estén disponibles desde todos los forms...¿Esto es posible?

Estoy usando gambas 2.21

Saludos!
 



 
ariel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Usar Variables De Un Form Desde Otro? 
 
Si, es posible crear variables globales (aunque no recomendable), pero yo las creo para mis programas...

Creas un modulo, (yo lo llamo siempre "var") y alli definos las variables que seran acepsibles a los demas módulos, formularios, etc.

Ademas hace falta que los formularios sean públicos.

Hay un ejemplo en mi blog:

http://jsbsan.wordpress.com/2009/11...cion-y-ejemplo/

tambien puedes ver un programa completo, explicado paso a paso, en :
http://jsbsan.wordpress.com/2010/09...as2-listin-2-2/

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Usar Variables De Un Form Desde Otro? 
 
Perfecto!
Voy a imitarte...;)

Por cierto: muy bueno el blog...me va a venir bien leer un poco de lo que ahi tienes

Saludos, y GRACIAS!
 



 
ariel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Usar Variables De Un Form Desde Otro? 
 
Hola

Te explico como hacerlo

Pongamos que al pulsar un botón quieres que se abra otro formulario form2 y allí conocer valores de dos textboxes de form1.

1º opcion

En Form2 creas la siguiente función:
private $txt1 as string, $txt2 as string

public sub _new(txt1 as string, txt2 as string)
$txt1=txt1
$txt2=txt2
end

Ahora en form1 en botón click pones lo siguiente:
private sub boton_click()
Dim F as NEW form2(textbox1, textbox2)
f.show
end

Lo que has hecho es crear una instancia en la que le pasas dos objetos existentes en form1. Esos dos objetos en este caso son dos textboxes, pero podría ser cualquier cosa. Por ejemplo yo suelo crear una única conexión a base de datos y la voy pasando a formularios según me va conviniendo).

También podrías pasarle el formulario entero. Entonces lo harías así
En form2
private $formu as form1
public sub _new(f as form1)
$formu=f
end

Y en form1 en el click del botón
public sub boton_click()
Dim F as new form2(ME)
F.show
end

Y ahora en form2 tendrías una variable conocida en todo el formulario llamada $Formu que contiene todo el formulario Form1.

2ª opción
Puedes crearte propiedades a tu gusto. Pongamos que queremos dos propiedades nombre y cif que están escritas en dos textboxes de form1 y quieres pasarlas a form2.

En form2 pones
p
rivate $txt1 as string, $txt2 as string
property nombre as string 'al hacer esto se crearán dos funciones read y write que pondré mas abajo
property cif as string 'al hacer esto se crearán dos funciones read y write que pondré mas abajo


Las funciones estarán vacías pero les pongo el código para que funcione
public function Nombre_read()
return $txt1
end
public sub Nombre_write(value as string)
$txt1=value
end
public function cif_read()
return $txt2
end
public function cif_write(value as string)
$txt2=value
end
 


A partir de ahora en form1 tu puedes hacer utilizar las propiedades que has creado
private sub boton_click
Dim F as NEW form2
f.nombre=textbox1.text
F.cif=textbox2.text
end


Otra cosa que puedes hacer (que es la peor pero funciona) es irte a las propiedades de tu proyecto y marcar la casilla los objetos de formulario son públicos. Entonces desde form2 puedes acceder a cualquier control de form1 sin nada de lo anterior.

Un saludo
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Usar Variables De Un Form Desde Otro? 
 
Evidentemente esta debe ser la forma correcta de hacerlo

Muchas gracias!

Aprovecho y pregunto otra cosa relacionada con este problema. ¿Se puede saber que puertos seriales dispone el ordenador?

Estoy usando /dev/ttyS0 pero me gustaría que el usuario pueda elegir entre los que haya disponibles....
 



 
ariel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Usar Variables De Un Form Desde Otro? 
 
Yo te aconsejo encarecidamente que evites el usar variables globales porque te llevan a programar MAL. Mejor utiliza lo que te expliqué antes que es la manera correcta de conseguir código eficiente.

En cuanto a lo que preguntas de los puertos serie tendrás que buscar los que hay. Como ejemplo aquí tienes un hilo de Pablo-Gnu que quería meter todos los usb en un listbox.

Listar usb en listbox

Un saludo
 



 
última edición por soplo el Lunes, 08 Noviembre 2010, 18:03; editado 1 vez 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Usar Variables De Un Form Desde Otro? 
 
Si, claro!
En todos lados desaconsejan el tema de las variables "globales"...son casi tan mal vistas como el "GOTO"

Ahi voy a ver el link....es exactamente lo que quiero hacer
 



 
ariel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Usar Variables De Un Form Desde Otro? 
 
Soplo:
Citar:
$txt1=txt1
$txt2=txt2

¿significa algo especial el signo $? ¿es un puntero?

Gracias por tus explicaciones, intentare dejar mis malos hábitos...  
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Usar Variables De Un Form Desde Otro? 
 
No no. No significa nada.

Lo explico un poco mejor

Tu tienes en un form un textbox (o una conexion o algo) que quieres pasar a otro formulario.
Pues haces
Dim F as NEW form2(lista de valores a pasar)

Y en el formulario 2 tienes lo siguiente

PRIVATE var1 as string, var2 as integer, var3 as boolean, var4 as connection, var5 as MiPropiaClase)

Osea tienes una variable definida para cada valor que vas a recibir. Si te van a enviar cinco cosas pues las cinco variables cada una del tipo que le corresponda bien entendido que puedes enviar lo que te de la gana (por ejemplo un socket que ya esté conectado).

Como esas variables son de tipo private y están declaradas a nivel de formulario serán conocidas en todo el formulario.

La otra cosa que tienes es
public sub _new(v1 as string, v2 as integer, v3 as boolean, v4 as connection, v5 as MiPropiaClase)
var1=v1
var2=v2
var3=v3
var4=v4
var5=v5
end


_new es una rutina especial que se ejecuta siempre que creas la clase (en este caso el formulario). Como al crear el formulario enviaste parámetros, esta rutina los recibe, pero claro solo existen en esa rutina. Por eso lo que haces es copiarlos a variables que funcionan a nivel de formulario.

_new también tiene otras aplicaciones. Imagina que deseas que al crear el formulario se cree un socket y se conecte a alguna parte. Pues en -new pondrías el código necesario para ello.

Pero luego por la misma razón quieres que cuando el formulario se descargue se haga algo y la conexión se corte. Para eso está _free que hace lo mismo pero para cuando la clase se destruye. En ese caso

public sub _free()
y aquí haces lo que sea, cerrar sockets, conexiones, terminar cálculos lo qu sea
end

Yo suelo poner los $ para las variables y así no me lio pero es cuestión de estilos de programación. Si tengo una variable que empieza por $ yo se que es una variable privada declarada a nivel de formulario y que es conocida en todo ese formulario. Bueno formulario o cualquier cosa. Esto es para cualquier calse. Un formulario no deja de ser una clase pero tu puedes crearte tus propias clases y esto funciona igual.

Un saludo
 
 



 
última edición por soplo el Lunes, 08 Noviembre 2010, 19:26; editado 1 vez 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Como Usar Variables De Un Form Desde Otro? 
 
ok, gracias
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Como Usar El Handle De Un Form ¡Soy Torpe! soplo General 12 Viernes, 18 Diciembre 2009, 19:16 Ver último mensaje
soplo
No hay nuevos mensajes Copiar Variables De Un Form A Otro Cubel General 25 Sabado, 16 Enero 2010, 21:53 Ver último mensaje
soplo
No hay nuevos mensajes Se Puede Llamar Desde Un Form A Un Menupop... v3ctor General 6 Martes, 03 Diciembre 2013, 09:06 Ver último mensaje
jsbsan
No hay nuevos mensajes Como Poner Un Form Dentro De Otro v3ctor General 12 Jueves, 12 Septiembre 2019, 21:35 Ver último mensaje
gambafeliz
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron