Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   problemas con mdichild (https://www.clubdelphi.com/foros/showthread.php?t=28345)

Cosgaya 16-12-2005 15:13:04

problemas con mdichild
 
hola a todos
tengo un problema con la propiedad fsmdichild

en mi mainmenu al hacer click en buscar, se abre una form que que tiene la propiedad formstile: fsnormal y la convierte en fsmdchild ( hago esto porque no quiero que se inicie al ejecutar) en el evento onclose de esta form se convierte otra vez en fsnormal, porque no queria que se quedase abajo minimizada. pero al volver a dar click por segunda vez(habiendo cerrado esta form anteriormente) en buscar del mainmenu, esta form se abre en la parte de abajo minimizada y no se como hacer para que se abra como al principio.. si me puedieran ayudar
gracias

Migpal 16-12-2005 15:44:41

tienes un problema y es darle valor a una propiedad y luego destruirla, que la hayas compilado fsnormal y en tiempo de ejecucion la cambies a fschild no implica que los que se generen de hay en adelante sean fschild.

en otras palabras, no necesitas volver a poner fsnormal cuando la vayas a cerrar.

FunBit 16-12-2005 15:51:12

Por otra parte, podrias revisar que desde el proceso de creación y el de destrucción del form són correctos. Revisa este hilo quizas te de alguna idea.

Ya nos contarás!

Cosgaya 16-12-2005 16:04:07

lo de poner fsnormal cuando la voy a cerrar es para que no se me quede abajo minimizada

maeyanes 16-12-2005 16:12:26

Para lograr lo que quieres destruye la ventana cada que la cierras, para esto puedes usar el evento OnClose de la forma:
Código Delphi [-]
procedure TForm2.Form2Close(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree
end;
Luego en el evento OnDestroy puedes hacer:
Código Delphi [-]
procedure TForm2.Form2Destroy(Sender: TObject);
begin
  Form2 := nil
end;
De esta forma cada que quieras abrir la ventana en cuestion solo haces:
Código Delphi [-]
begin
  if not Assigned(Form2) then
    Form2 := TForm2.Create(Application)
end;
Así puedes tener tu forma como fsMDIChild desde el diseño y cuando la cierres en tiempo de ejecución, se destruirá y por consiguiente, ya no quedará minimizada.

Como nota adicional, las formas MDIChild se muestran al momento de crearlas, por lo que no necesitas hacer un Show.



Saludos...

Cosgaya 16-12-2005 16:39:08

gracias por la solucion


La franja horaria es GMT +2. Ahora son las 18:28:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi