Espero no haberlo liado y que se me entienda...

Gracias por adelantado. Sois fabulosos

| |||
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 ![]() |
| ||||
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:
Espero te sirva Form_hijoPrincipal.Show Unload Form_hijo1 Unload Form_hijo2 Unload Form_hijo3 ![]() Saludos ![]()
__________________ .: Download Day - Ayuda a Firefox a Conseguir un record mundial :. |
| |||
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 ![]() |
| ||||
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 ![]() |
| ||||
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: |
| |||
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 |
| |||
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 |
| ||||
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: |
| ||||
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: |
| |||
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... |
| |||
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 |
| |||
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 |
| |||
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? |
| |||
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 ![]() Gracias de todas formas. |
| ||||
![]() Cita: Pues entonces no es necesario el:
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 ![]() Gracias de todas formas.
Código:
Dim newform As New Form5
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| |||
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. |