Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ventana dentro de otra (https://www.clubdelphi.com/foros/showthread.php?t=19797)

CarmaZone 27-03-2005 23:48:08

Ventana dentro de otra
 
Hola, estoy haciendo una aplicacion, tipica proveedores,articulos, clientes... y tengo mi pantalla principal con mi menu, lo ke kiero es cuando le de a proveedores (por ejemplo) y se me abra un nuevo form (tipico form.show y eso) ke se me abra pero dentro de mi formulario principal para ke siempre este a mano el menu principal, ais como acen todos los programas. Espero haberme explicado bien.

Muchas Gracias Y Salu2!!!

Lepe 28-03-2005 00:16:44

La aplicación que deseas se llama aplicación MDI (Multiple Document Interface).

El formulario que quieres que actue de principal, ponle la propiedad:

FormStyle := fsMdiForm

Las ventanas que han de ser hijas, (o sea dentro) ponle esa propiedad a fsMDIChild.

Si necesitas más ayuda, busca por el foro por "ventana padre" "ventana hija" "existefrm", "cafree" se ha hablado ampliamente sobre el tema.

Por otra parte en DELPHI, File --> new --> other --> Projects --> MDI APPLICATION tienes un principio, puede servirte de ayuda.

Un saludo

CarmaZone 28-03-2005 00:18:45

muchas gracias, eske nose ni como se yamaba ese tipo ni nada, por eso no he podido realizar ninguna buskeda, muchas gracias nuevamente, voy a buscar por el foro

Salu2!!!

Edito: Pues nada, ya lo he conseguido :p , muxisimas gracias!!! Solo una cosita, cuando abro mi form hijo lo he puesto ke salga maximizado para ke asi ocupe todo el espacio ke keda pero al crearse el formulario hijo aparece la ventana como en el diseño en delhpi y al 1/4 de segundo se maximiza, es decir ke se ve como se automaximiza la ventana sola. Me gustaria saber si es asi correcto el funcionamiento.

roman 28-03-2005 07:41:57

Cita:

Empezado por CarmaZone
cuando abro mi form hijo lo he puesto ke salga maximizado para ke asi ocupe todo el espacio ke keda pero al crearse el formulario hijo aparece la ventana como en el diseño en delhpi y al 1/4 de segundo se maximiza, es decir ke se ve como se automaximiza la ventana sola. Me gustaria saber si es asi correcto el funcionamiento.

Ese comportamiento se debe al efecto de animación de las ventanas. Para evitarlo puedes usar el siguiente procedimiento:

Código Delphi [-]
(*
  Enable = false inhabilita la animación
  Enable = true habilita la animación
*)
procedure EnableAnimation(Enable: Boolean);
var
  Info: TAnimationInfo;

begin
  Info.cbSize := SizeOf(TAnimationInfo);
  LongBool(Info.iMinAnimate) := Enable;
  SystemParametersInfo(SPI_SETANIMATION, SizeOf(Info), @Info, 0);
end;

Antes de crear el formulario inhabilitas la animación y puedes restaurarla luego de creado:

Código Delphi [-]
EnableAnimation(false);
TVentanaHija.Create(Self);
EnableAnimation(true);

Nota sin embargo, que el mismo efecto aparecerá cada vez que maximices (o restaures) la ventana hija. Para evitarlo puedes hacer los mismo pero en el manejador del mensaje WM_SYSCOMMAND del formulario hijo:

Código Delphi [-]
interface

type
  TVentanaHija = class(TForm)
  private
    procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
  end;

implementation

procedure TVentanaHija.WMSysCommand(var Msg: TWMSysCommand);
begin
  case Msg.CmdType and $FFF0 of
    SC_ZOOM, SC_RESTORE:
    begin
      EnableAnimation(false);
      inherited;
      EnableAnimation(true);
    end;

    else
      inherited;
  end;
end;

end.

Claro que podrías inhabilitar la animación al principio de la aplicación sin restaurarla con lo cual lo anterior sería innecesario. Pero ten en cuenta que la animación de ventanas es un efecto global del sistema de manera que si la inhabilitas en tu aplicación la inhabilitas en todo el sistema.

// Saludos

CarmaZone 28-03-2005 10:34:55

Roman muchas gracias, aunke creo ke voy a dejarlo lo de las animaciones por ahora ya ke ay cosas ke no habia visto en mi vida y no tengo nivel para hacer cosas asi. Cada vez ke leo tus post me kedo flipao con los pedazos de codigos ke pones :cool: tambien me gustaria dar las gracias a todos por los foros ya ke se presta muy buena ayuda a pesar ke me muxos acemos preguntas de novatos ke las tendreis ya muy vistas :p

Gracias Y Salu2!!!


La franja horaria es GMT +2. Ahora son las 08:27:36.

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