Ver Mensaje Individual
  #9  
Antiguo 01-08-2008
sur-se sur-se is offline
Miembro
 
Registrado: may 2003
Posts: 212
Reputación: 22
sur-se Va por buen camino
Investigando un poco el tema, porque antes no se me había dado esta cuestión, he visto que las únicas diferencias entre un form de tipo fsNormal y fsMDIChild está en el FormStyle y en el Visible. En el caso de formularios modales (fsNormal), el Visible es False, mientras que en los fsMDIChild el visible es true. Esto, que parece una tontería, es la diferencia que hace que no pueda abrirse un formulario no modal como modal.
Si bien, se podría hacer algo del tipo:

Código:
with Tform_no_modal.create(self) do
begin
    FormStyle:=fsNormal;
    Showmodal;
    Free;
end;
El problema es que sigue dando el error de no se puede poner visible un formuario no modal.
Si tratamos de poner el Visible:=false antes del FormStyle o después, pero antes del showmodal, se produce el mismo error.

Otra alternativa que he probado es a definirme mi propio constructor para la form, de manera que tratemos de poner el estilo y el visible antes del create, de la forma siguiente:

Código:
unit formulario_no_modal;
..
constructor crearmodal;  
...
constructor TForm_no_modal.crearmodal;
begin
    FormStyle:=fsNormal;
    Visible:=false;
    inherited;   // Para construir el resto de los objetos
end;
Pero esto tampoco funciona pues da el mismo problema. Así pues, no parece haber manera de abrir un formulario en modal que esté definido como no modal en tiempo de diseño. Al menos ya no se me ocurren más intentos que hacer.

Un saludo.
Responder Con Cita