Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Saber cuándo se crea un form mdi (https://www.clubdelphi.com/foros/showthread.php?t=72250)

tempto 06-02-2011 10:00:07

Saber cuándo se crea un form mdi
 
Buenos días,

Como sabréis, las aplicaciones mdi tienen un comportamiento un poco peculiar en windows, a la hora de maximizar, se maximiza todo lo que se abra después o se abre debajo de la última y queda cortada por la pantalla y cosas así. Mi idea es detectar cuándo un mdi se está creando y darle yo el tamaño, la posición...
He encontrado eventos para detectar que un form se maximiza, minimiza, se mueve, se pulsa en la barra de título... Pero no doy con el evento de creación de un mdi.

¿Alguien se ha encontrado con este problema?

ecfisa 06-02-2011 20:44:48

Hola tempto.

El evento que se dispara cuando se está creando es OnCreate del propio MDIChild, pero también podes darle la posición y el tamaño desde la creación en el MDIForm:

Código Delphi [-]
...
uses Unit2;

{ Crear o mostrar Childs }
procedure TForm1.MostrarChild(AFormClass: TFormClass);
var
  i: integer;
begin
  for i:= 0 to MDIChildCount - 1 do  // Buscar si esta creada
   if Screen.Forms[i] is AFormClass then
     with Screen.Forms[i] do
     begin
       if WindowState = wsMinimized then  // Si esta minimizada, estilo normal
          WindowState:= wsNormal;         
       Screen.Forms[i].BringToFront; // Al frente
       Exit;
     end;
  // Crearla, dar valores iniciales
  with AFormClass.Create(Application) do
  begin
    Left:= 1; 
    Top:= 1;
    Height:= 250; 
    Width:= 300;
    Show;
  end;
end;

Ejemplo de llamada:
Código Delphi [-]
...
begin
  MostrarChild(TForm2);
end;

Un saludo.

tempto 09-02-2011 19:59:09

Gracias, aunque un poco tarde... voy a probar


La franja horaria es GMT +2. Ahora son las 15:05:37.

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