Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Relaciones entre forms

Estas en el tema de Relaciones entre forms en el foro de Visual Basic clásico en Foros del Web. Mi pregunta es la siguiente. ¿cómo hago para compartir variablñes entre distintos forms? por ejemplo: cómo asigno una variable de un form a otra declarada ...
  #1 (permalink)  
Antiguo 14/12/2005, 08:15
 
Fecha de Ingreso: septiembre-2005
Mensajes: 32
Antigüedad: 18 años, 7 meses
Puntos: 0
Relaciones entre forms

Mi pregunta es la siguiente. ¿cómo hago para compartir variablñes entre distintos forms? por ejemplo: cómo asigno una variable de un form a otra declarada en otro form.
Lo pregunto porque necesito trabajar con un dataset que declare en un form desde otro form.
Lo que se me ocurrio fue declarar otra instancia del form1 en el form2 pero de esta manera supongo que no tendre los datos porque justamente es una nueva instancia ¿no?
Bueno diculpen mi ignorancia, soy un aprendiz :)
  #2 (permalink)  
Antiguo 14/12/2005, 08:50
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
con un public

por ejemplo en el form 1 declaras esta variable..

Public MiVar as Integer
' en una de tus opciones le agregas un valor de la manera normal
MiVar = 2 ' por ejemplo..

y desde form2 haces esto..

msgbox form1.Mivar ' aqui tomas el valor asignado de la variable..

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #3 (permalink)  
Antiguo 14/12/2005, 14:49
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
(Vi que habías respondido que estabas trabajando en .net)yo diría que si.

y tu pregunta la podes efectuar en los foros de .NET

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #4 (permalink)  
Antiguo 14/12/2005, 14:58
 
Fecha de Ingreso: septiembre-2005
Mensajes: 32
Antigüedad: 18 años, 7 meses
Puntos: 0
NO puedo :(

NO me deja hacerlo. cuando escribo "form1" dentro de "Private Sub CalcularGananciaMes_Click" (el metodo del form2 en donde necesito usar el form1) me pone que no esta declarado, entonces tengo que hacer:
"Dim Form1 As New Form1" pero es lo que no quiero porque al crear una instancia nueva los datos estan todos vacios y si hago lo mismo sin el "new" me salta un error de ejecucion.Estoy perdido como turco en la neblina. Ayuda Please!!!!
  #5 (permalink)  
Antiguo 14/12/2005, 16:32
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Cita:
Iniciado por arielbrizi
NO me deja hacerlo. cuando escribo "form1" dentro de "Private Sub CalcularGananciaMes_Click" (el metodo del form2 en donde necesito usar el form1) me pone que no esta declarado, entonces tengo que hacer:
"Dim Form1 As New Form1" pero es lo que no quiero porque al crear una instancia nueva los datos estan todos vacios y si hago lo mismo sin el "new" me salta un error de ejecucion.Estoy perdido como turco en la neblina. Ayuda Please!!!!
form1 y form2 son nombres al azar de formularios ponele los nombres que vos haz usado para tu app, FrmPrincipal o que se yo..


nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #6 (permalink)  
Antiguo 14/12/2005, 17:43
 
Fecha de Ingreso: septiembre-2005
Mensajes: 32
Antigüedad: 18 años, 7 meses
Puntos: 0
si eso lo se, pero igual no anda. me pone: "Local variable 'Form1' cannot be referred to before it is declared"
  #7 (permalink)  
Antiguo 14/12/2005, 20:49
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Y si utilizas una variable de Session... se solucionan todos tus problemas
  #8 (permalink)  
Antiguo 14/12/2005, 21:17
 
Fecha de Ingreso: septiembre-2005
Mensajes: 32
Antigüedad: 18 años, 7 meses
Puntos: 0
Como es eso?

la verdad que no las se usar. ¿de que se tratan?
  #9 (permalink)  
Antiguo 15/12/2005, 06:30
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Disculpa me equivoqué, tú estas haciendo una Windows Aplication pero las variables de Session son propias de las aplicaciones web
  #10 (permalink)  
Antiguo 15/12/2005, 06:50
Avatar de lucasiramos  
Fecha de Ingreso: agosto-2004
Ubicación: Santa Rosa, La Pampa, Argentina
Mensajes: 1.484
Antigüedad: 19 años, 8 meses
Puntos: 13
Aparte las variables de sesión son para .NET no? ¿O hay tambien para Visual 6?
  #11 (permalink)  
Antiguo 15/12/2005, 08:04
 
Fecha de Ingreso: agosto-2005
Ubicación: Peru-Lima
Mensajes: 225
Antigüedad: 18 años, 8 meses
Puntos: 0
Cita:
Iniciado por arielbrizi
Mi pregunta es la siguiente. ¿cómo hago para compartir variablñes entre distintos forms? por ejemplo: cómo asigno una variable de un form a otra declarada en otro form.
Lo pregunto porque necesito trabajar con un dataset que declare en un form desde otro form.
Lo que se me ocurrio fue declarar otra instancia del form1 en el form2 pero de esta manera supongo que no tendre los datos porque justamente es una nueva instancia ¿no?
Bueno diculpen mi ignorancia, soy un aprendiz :)
Porque no utilizas un modulo :)
  #12 (permalink)  
Antiguo 15/12/2005, 10:08
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Simón... en un modulo declaras una variable Global y esta te vale para cualquier form

Claro que cuando la dejes de utilizar hazle un nothing
  #13 (permalink)  
Antiguo 18/12/2005, 06:09
Avatar de piojoman  
Fecha de Ingreso: enero-2005
Ubicación: Argentina
Mensajes: 224
Antigüedad: 19 años, 3 meses
Puntos: 3
Pero las variables de tipo Public funcionan bien, talvez todo sea un problema de código de arielbrizi en este ejemplo chiquito se ve que funca bien...

En un Formulario llamado Primero va esto:
Public Dato As String
Private Sub Command1_Click()
Segundo.Show
End Sub
Private Sub Form_Load()
Dato = "Esta es la variable del Formulario Primero..."
End Sub
--------
En otro Formulario llamado Segundo va esto:
Private Sub Form_Load()
MsgBox Primero.Dato, , "Cargando el dato de la variable desde el Formulario Segundo"
End Sub


mmmm... Adios!!
  #14 (permalink)  
Antiguo 18/12/2005, 07:29
Usuario baneado!
 
Fecha de Ingreso: febrero-2005
Mensajes: 116
Antigüedad: 19 años, 2 meses
Puntos: 0
Cita:
Iniciado por Developer9
Simón... en un modulo declaras una variable Global y esta te vale para cualquier form

Claro que cuando la dejes de utilizar hazle un nothing
y

Cita:
Iniciado por antonio2005pe
Porque no utilizas un modulo :)
No se deben usar variables globales NUNCA. La información necesaria se debe pasar en los constructores de las clases de los forms.
  #15 (permalink)  
Antiguo 19/12/2005, 05:27
Avatar de lucasiramos  
Fecha de Ingreso: agosto-2004
Ubicación: Santa Rosa, La Pampa, Argentina
Mensajes: 1.484
Antigüedad: 19 años, 8 meses
Puntos: 13
Cita:
Iniciado por cabeza_nispero
No se deben usar variables globales NUNCA.
¿Por que no? Si existen las variables globales es porque se ha probado y requete probado de que son útiles. Lo bueno del caso es que no solo hay variables globales para utilizar, como decis, se pueden usar clases. Pero si existe el recurso no hay porque dejar de tenerlo en cuenta.

Saludos. Lucas
  #16 (permalink)  
Antiguo 19/12/2005, 11:18
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Cita:
Iniciado por cabeza_nispero
No se deben usar variables globales NUNCA. La información necesaria se debe pasar en los constructores de las clases de los forms.
En visual basic 6?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:25.