Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Función para abrir un formulario no modal en un entorno MDI - Delphi
Lenguaje de programación Borland Delphi


La función que a continuación os mostramos abre un formulario no modal en un entorno MDI (interfaz de múltiples documentos). Si ya está creado lo muestra con "Show", en caso contrario lo crea y lo muestra:

//abrir una ventana MDI
procedure afi (nombreVentana : tform; tnombreVentana : TComponentClass;
    snombreventana : String);
var
  f : tform;
begin
  screen.cursor := crhourglass;
  lockwindowupdate(application.mainform.handle);  //quitar efecto maximizado
  try
    F := application.findcomponent(snombreventana) as tform;
    if Assigned(F) then
    begin
      if f.WindowState = wsminimized then
        if vtestadocarga = 1 then
          f.windowstate := wsmaximized
        else
          f.windowstate := wsnormal;
      f.bringtofront;
      screen.cursor := crdefault;
    end
    else
    begin
      application.createform (tnombreventana, nombreventana);
      if vtestadocarga = 1 then
        nombreventana.WindowState := wsmaximized;
    end;
  finally
    screen.Cursor := crDefault;
    lockwindowupdate(0);
  end;
end;
Un ejemplo de utilización:
procedure TFormMenuPrincipal.Variedades1Click(Sender: TObject);
begin
  afi(formvariedades, tformvariedades, 'formvariedades');
end;
Nota 1: hemos utilizado la función "lockwindowupdate" para quitar el efecto de maximizado que realiza Windows pues resulta algo molesto.
Nota 2: con "application.findcomponent" buscamos si ya está creado el formulario para no volver a crearlo.
Nota 3: La variable global "vtestadocarga" la utilizamos para mostrar la ventana maximizada o a su tamañano normal.




Publicado el: 2005-07-26

Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A