Ver Mensaje Individual
  #9  
Antiguo 22-09-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
Cita:
Empezado por Ana María Ver Mensaje
Código Delphi [-]unit UMDI; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls; type TMDI = class(TForm) procedure FormClose(Sender: TObject; var Action: TCloseAction); public class function Formulario: TMDI; class function CrearOTraerAlFrente: TMDI; end; implementation {$R *.dfm} procedure TMDI.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; //Libera memoria al cerrar end; class function TMDI.Formulario: TMDI; //Función auxiliar para comprobar que un form //está abierto var I: Integer; begin for I := Screen.FormCount - 1 downto 0 do begin TForm(Result) := Screen.Forms[i]; if Result.ClassType = Self then Exit; end; Result := nil; end; class function TMDI.CrearOTraerAlFrente: TMDI; begin Result := Formulario; LockWindowUpdate(Application.MainForm.ClientHandle); //Evita un molesto efecto // visual al crear la ventana try if Assigned(Result) then //Comprueba si existe el form y lo trae al frente begin if Result.WindowState = wsMinimized then ShowWindow(Result.Handle, SW_RESTORE); Result.BringToFront; end else begin Result := Create(Application.MainForm); //Si no existe lo crea y lo muestra Result.Show; end; finally LockWindowUpdate(0); end; end; end.
¿ Y despues no te cuesta leer ese código ?

Saludos.
Responder Con Cita