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

Formularios MDI

Estas en el tema de Formularios MDI en el foro de Visual Basic clásico en Foros del Web. Estoy haciendo una aplicacion con formularios MDI que tiene un formulario principal y cuatro hijos (uno de ellos "principal"). Cargo el hijo principal y al ...
  #1 (permalink)  
Antiguo 30/11/2005, 09:31
 
Fecha de Ingreso: junio-2005
Mensajes: 28
Antigüedad: 18 años, 10 meses
Puntos: 0
Formularios MDI

Estoy haciendo una aplicacion con formularios MDI que tiene un formulario principal y cuatro hijos (uno de ellos "principal"). Cargo el hijo principal y al referirme desde ese hijo a los otros no hay problema pero al intentar referirme desde un hijo no principal al hijo principal no me deja. Porque sucede esto? Hay alguna manera de poder solucionarlo?
Espero no haberlo liado y que se me entienda...
Gracias por adelantado. Sois fabulosos
  #2 (permalink)  
Antiguo 30/11/2005, 10:00
Avatar de jc_moty  
Fecha de Ingreso: septiembre-2005
Ubicación: Usulután, El Salvador
Mensajes: 477
Antigüedad: 18 años, 7 meses
Puntos: 1
Bien, lo que tenes que hacer es que cada vez que llames un formulario descarga todos los demas de la memoria. Por Ejemplo, para llamar al hijo principal seria asi:
Código:
Form_hijoPrincipal.Show
Unload Form_hijo1
Unload Form_hijo2
Unload Form_hijo3
Espero te sirva
Saludos
  #3 (permalink)  
Antiguo 30/11/2005, 10:32
 
Fecha de Ingreso: junio-2005
Mensajes: 28
Antigüedad: 18 años, 10 meses
Puntos: 0
Me voy a explicar mejor porque creo que no se me entiende.
Tengo un formulario principal (formulario padre) en el que cargo un formulario hijo (Form5). En este formulario hijo hay unos botones coloreados. Si yo saco otro formulario (Form3) en el que hay un list y yo pincho en un elemento del list, se deberian encender los botones que le corresponden en el Form5 (cosa que no pasa); lo hago asi:
Form5.Command56.Picture = LoadPicture("rojo.bmp")
Haber si ahora se me comprende mejor, o me he explicado mejor
  #4 (permalink)  
Antiguo 30/11/2005, 11:00
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
Lo siento pero sigues sin explicarte...

Entedemos cual es la situación, pero cual es el error en sí? ¿Qu es lo que no has logrado hacer especificamente? ¿Recibes algun error?

Saludes

PD: Me has hecho sentir con un dectetive preguntando.
__________________
Leer es Saber, REEL.
Mi Blog
  #5 (permalink)  
Antiguo 30/11/2005, 11:10
 
Fecha de Ingreso: junio-2005
Mensajes: 28
Antigüedad: 18 años, 10 meses
Puntos: 0
que no se iluminan los botones al pinchar en el list...
PD: Tu un detective pero yo paranoico perdido al no enterderme o no saberme explicar...
  #6 (permalink)  
Antiguo 30/11/2005, 11:14
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
No me dices si recibes algún error ... bueno me voy a atrever hacer un tiro al aire porque no se realmente a donde apuntar.

Pon esto:
DoEvents

Despues de esta línea de código:
Form5.Command56.Picture = LoadPicture("rojo.bmp")

Saludes
__________________
Leer es Saber, REEL.
Mi Blog
  #7 (permalink)  
Antiguo 30/11/2005, 11:14
Avatar de lop7  
Fecha de Ingreso: junio-2005
Ubicación: portuguesa (Venezuela)
Mensajes: 187
Antigüedad: 18 años, 11 meses
Puntos: 1
hola...

ya probaste asi;

Form5.Command56.Picture = LoadPicture("rojo.bmp")
Form5.Command56.Refresh

unload me

para que despues q asignes cierres el formulario y puedas ver los cambios en los botones del from5

saludos..
nos vmos...
__________________
A quien dices un secreto le entregas tu libertad :si:
  #8 (permalink)  
Antiguo 30/11/2005, 11:32
 
Fecha de Ingreso: junio-2005
Mensajes: 28
Antigüedad: 18 años, 10 meses
Puntos: 0
El caso es que no recibo ningun error. Simplemente pinchas en un item del list y no se colorea el boton que le corresponde....
He probado como ha dicho lop7 y no me funciona...
Saludos
Gracias
  #9 (permalink)  
Antiguo 30/11/2005, 11:38
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
Tenes configurado el boton con el estilo necesario?

La propiedad style del botón tiene que estar para gráfico.

Saludes
__________________
Leer es Saber, REEL.
Mi Blog
  #10 (permalink)  
Antiguo 30/11/2005, 11:48
 
Fecha de Ingreso: junio-2005
Mensajes: 28
Antigüedad: 18 años, 10 meses
Puntos: 0
Eso ya lo tengo bien configurado.
Es deseperante, ya lo se. Ya me he dado yo de cabezazos para saber que es lo que esta fallando. Pensaba que igual podria ser por alguna propiedad especial que puedan tener los MDI (es la primera aplicacion de este tipo que programo) pero la verdad que no tengo ni idea...
Saludos
  #11 (permalink)  
Antiguo 30/11/2005, 12:21
Avatar de lop7  
Fecha de Ingreso: junio-2005
Ubicación: portuguesa (Venezuela)
Mensajes: 187
Antigüedad: 18 años, 11 meses
Puntos: 1
pana porq no pruebas lo mismo con otro boton
pero asignale algo al caption ej:

Form5.Command60.caption= "si resive valores"
Form5.Command60.Refresh

es solo de prueba para saber si resive o no valores ok. q deberia resivir

intentalo si tomo el valor entonces se te esta escapando y no es precisamente q estes trabajando con un MDI.

saludos..
nos vmos...
__________________
A quien dices un secreto le entregas tu libertad :si:
  #12 (permalink)  
Antiguo 30/11/2005, 12:29
 
Fecha de Ingreso: junio-2005
Mensajes: 28
Antigüedad: 18 años, 10 meses
Puntos: 0
No recibe valores. Que puedo hacer ahora?
Saludos
  #13 (permalink)  
Antiguo 30/11/2005, 12:52
Avatar de lop7  
Fecha de Ingreso: junio-2005
Ubicación: portuguesa (Venezuela)
Mensajes: 187
Antigüedad: 18 años, 11 meses
Puntos: 1
mira pana lo esta asiendo bien ya lo prove y esta todo bien, tal ves te pasa que como estas poniendo una imagen en el picture del botn te falto la ruta completa me esplico

tu lo tienes asi..
Form5.Command56.Picture = LoadPicture("rojo.bmp")
y seria así...
Form5.Command56.Picture = LoadPicture("c:\imagen\rojo.bmp")
o
Form5.Command56.Picture = LoadPicture(app.path & "\rojo.bmp")

verificalo asi a ver si te silve

Saludos...
nos vmos..
__________________
A quien dices un secreto le entregas tu libertad :si:
  #14 (permalink)  
Antiguo 30/11/2005, 13:15
 
Fecha de Ingreso: junio-2005
Mensajes: 28
Antigüedad: 18 años, 10 meses
Puntos: 0
He hecho un nuevo proyecto y he comprobado todo lo que me has dicho lop7 y ahi funciona todo pero en el programa original no funciona ni con lo ultimo que me has dicho... Le pinchas en el list y sigue sin hacer nada. Incluso haciendo un nuevo formulario y poniendo un boton para que aparezca en el label del formulario hijo principal algo no va... La verdad que no veo diferencias entre lo que he hecho y lo que tenia...
  #15 (permalink)  
Antiguo 30/11/2005, 13:40
 
Fecha de Ingreso: junio-2005
Mensajes: 28
Antigüedad: 18 años, 10 meses
Puntos: 0
Si ayuda aporto este dato:
Cuando desde el formulario hijo principal se pincha en los botones sale el formulario hijo correspondiente y no hay problema. Pero cuando se intenta hacer al reves, que interactuando con un formulario hijo haya cambios en el formulario hijo principal entonces no funciona, no dando mayor sintoma que ver uno mismo que no funciona.
Espero haber aclarado algo el tema
Saludos y gracias por adelantado
  #16 (permalink)  
Antiguo 30/11/2005, 23:25
 
Fecha de Ingreso: junio-2005
Mensajes: 28
Antigüedad: 18 años, 10 meses
Puntos: 0
Ya se lo que pasa; me carga dos veces el formulario hijo principal. Hay alguna manera de evitarlo? Lo cargo con:
Private Sub MDIForm_Load()
Dim newform As New Form5
newform.Show
End Sub
  #17 (permalink)  
Antiguo 01/12/2005, 00:16
 
Fecha de Ingreso: junio-2005
Mensajes: 28
Antigüedad: 18 años, 10 meses
Puntos: 0
He detectado dos sitios en que puede haber problemas.
El primero es en el formulario hijo principal que hago que se ajuste arriba a la derecha y entonces me lo carga 2 veces; lo hago con Form5.Move 0,0
El segundo punto es en los formularios hijos que al pinchar en el list yo creo que me vuelven a cargar el formulario hijo principal; el codigo seria:

Private Sub List1_Click()
If List1.List(List1.ListIndex) = "Cistitis" Then
Form5.Command56.Picture = LoadPicture("rojo.bmp")
End If
End Sub
He leido algo sobre las propiedades ActiveForm y ActiveControls.Se podria solucionar con estas propiedades ?¿Como seria?
  #18 (permalink)  
Antiguo 01/12/2005, 00:35
 
Fecha de Ingreso: junio-2005
Mensajes: 28
Antigüedad: 18 años, 10 meses
Puntos: 0
Ya se lo que pasaba. En vez de poner

Private Sub MDIForm_Load()
Dim newform As New Form5
newform.Show

hay que poner

Private Sub MDIForm_Load()
Dim newform As New Form5
Form5.Show

Por fin di con la solucion
Menos mal ya pensaba que no lo iba a descubrir nunca.
Gracias de todas formas.
  #19 (permalink)  
Antiguo 01/12/2005, 05:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación

Cita:
Iniciado por jiusad
Ya se lo que pasaba. En vez de poner

Private Sub MDIForm_Load()
Dim newform As New Form5
newform.Show

hay que poner

Private Sub MDIForm_Load()
Dim newform As New Form5
Form5.Show

Por fin di con la solucion
Menos mal ya pensaba que no lo iba a descubrir nunca.
Gracias de todas formas.
Pues entonces no es necesario el:
Código:
 Dim newform As New Form5
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #20 (permalink)  
Antiguo 01/12/2005, 05:57
 
Fecha de Ingreso: junio-2005
Mensajes: 28
Antigüedad: 18 años, 10 meses
Puntos: 0
Pues es verdad; no hace falta...
De todas maneras no se porque me habia obsesionado con que habia que poner todo ese mondongo... Me imagine que iban a ser tan diferentes los MDI que agarre eso de la ayuda del VB y al final es como en un SDI. Bueno, asi ya lo se para la proxima
Muchas gracias por vuestra ayuda.
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 05:16.