PDA

Ver la Versión Completa : Ocultar Form fsmdi Child


verito_83mdq
08-01-2011, 00:07:57
Buenas Tardes, disculpen la molestia. Les paso a explicar lo que me sucede.
El sistema tiene una ventana pricipal fsmdi y varias fsmdi child. Lo que yo quiero hacer es ocultar algunos form child
Ej: busco un cliente y una vez q lo encuentro pongo ver datos y se me abre otro fschild lo que yo quiero es que el buscado se oculte y cuando cierro el form del cliente se vuelva a abrir. Yo esto lo hacia jugando con el evento visible:=true/false cuando los form era fsnormal pero al hacerlo child el evento visible no anda. Alguna suferencia?? Me explique bien??
Desde ya muchas gracias!

Aleca
08-01-2011, 00:29:13
si mal no recuerdo con Form1.Show la hacia visible de nuevo.

Saludos :)

verito_83mdq
08-01-2011, 01:03:09
Gracias por responder!! Te cuento que todavía estoy en quererla ocultar no llegue al proceso de hacerla visible.
Cuando le pongo BuscarForm.visible:=false; me tira el siguiente error:
Cannot hide an MDI Child Form'. Process stopped.
No se como se haria entonces para ocultar, tampoco me serviria destruirla y volverla a crear porque perderia info.
Seguro que a muchos ya les paso, espero que me puedan ayudar!

Aleca
08-01-2011, 01:08:06
:)cuando la creas ya se hace visible.

verito_83mdq
08-01-2011, 01:15:26
Gracias por responder!! Pero....
No me explique bien me parece, lastima que no puedo subir imagenes.
El form buscar se crea lo mas bien es fsmdi child, ahora cuando encuentro al cliente seleccione ver datos y el formulario buscar se tendria que ocultar y tendria que aparece el form con lo datos. Osea tengo el form principal (padre), despues el form buscar (hijo) y el form datos (nieto) por llamarlo de algun modo. Quedo mas claro ahora?

Aleca
08-01-2011, 01:22:10
capaz, hace varios años que deje de usar esos formularios pero recuerdo el form para buscar datos lo hacia fsNormal y lo abria con showmodal de esa forma te evitas ese problema.

Saludos:)

verito_83mdq
08-01-2011, 01:27:41
Vos sabes que me esta dando muchos problemas trabajar con mdi parent y child, yo los form los tenia a todos en fsnormal el problema que tenia es que al hacer click fuera del formulario perdía el foco se cerraba el form y perdía lo que estaba haciendo, esto lo solucione con mdi pero me trajo otros problemas, porque en si la aplicación es para tener solamente un formulario abierto a la vez. Alguna sugerencia? Gracias!

Caral
08-01-2011, 01:38:39
Hola
El form que nace no puede ser ocultado por el que lo creo, sea padre o hijo.
Al hacerlo visible o no se puede tener este problema.
Yo no usaria forms Hijos si no es necesario, suelen dar problemillas de este tipo.
No me gusta complicarme la vida.
Saludos

Aleca
08-01-2011, 01:56:55
ahora hago esto.. todos form normales y los muestro con show, en cada form puse lo sig.:

...
private
{ Private declarations }
procedure CreateParams(var Params: TCreateParams); Override;
....

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
end;
...

esto me pone el form en la barra de windows.:)

Aleca
08-01-2011, 01:57:28
Hola
El form que nace no puede ser ocultado por el que lo creo, sea padre o hijo.
Al hacerlo visible o no se puede tener este problema.
Yo no usaria forms Hijos si no es necesario, suelen dar problemillas de este tipo.
No me gusta complicarme la vida.
Saludos
de acuerdo...:D

verito_83mdq
08-01-2011, 02:51:01
Bueno muchachos,nada de Mdi form hijos sigo trabajando con form normal, me dio bastantes problemas me complique pensando que era mejor de la otra manera pero veo que no se justifica trabajar con MDI en mi aplicación. Gracias Caral y Aleca por prestarme su ayuda!!!
Saludos!!

Caral
08-01-2011, 03:45:54
Hola
Hay trucos sencillos para que no se vean ciertos forms en ciertos momentos, como por ejemplo hacerlos translucidos, casi transparentes.
Otra forma es minimizarlos, sacarlos de la pantalla, etc., etc.
No quiero que tomen mi opinion a pecho, simplemente sera que como no se manejar bien esto de los hijos trato de no complicarme y hacer el programa lo mas sencillo posible, teniendo en cuenta el famoso mantenimiento que tarde o temprano le toca a uno hacer, entonces mientras mas claro y sencillo sea el programa........
Saludos