Ver Mensaje Individual
  #12  
Antiguo 06-10-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Para evitar que te cree dos veces el mismo MDIChild, podés usar esta función en el MDIForm:
Código Delphi [-]
procedure TMDIForm.CrearChild(ClassForm: TFormClass);
var
  i: Integer;
begin
  for i:= 0 to MDIChildCount do  // Buscar si está creada
   if Screen.Forms[i].ClassName = ClassForm.ClassName then // ¿ Ya existe ?
   begin
     Screen.Forms[i].WindowState:= wsNormal;  // restaurar
     Screen.Forms[i].BringToFront;            // Traer al frente
     Exit;                                    // Salir;
   end;
  with ClassForm.Create(nil) do Show; // No existe, crearlo
end;

Ejemplo de llamada:
Código Delphi [-]
     CrearChild(TClientes);

Para que el MDIChild se cierre y no se minimize incluí en el evento OnClose del mismo:
Código Delphi [-]
procedure TClientes.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   Action:= caFree;
end;


Saludos.
Responder Con Cita