Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Aplicacion con varias ventanas (https://www.clubdelphi.com/foros/showthread.php?t=43187)

salvanano 04-05-2007 01:57:01

Aplicacion con varias ventanas
 
Hola, siempre que e creado aplicaciones siempre lo he hecho con frames o con forms, pues bien lo que quiero realizar es una aplicacion que se abra una ventana principal y cuando quiera abrir otra, esta se abra dentro de la principal y que al maximizar ocupe todo el 'client ' de la principal.
No se si me e explicado con claridad.
Alguien podria explicarme como?
Espero sus respuestas

egostar 04-05-2007 02:02:52

Puedes crear una aplicación del tipo MDI, puedes ver si te sirve haciendo esto.

File->New->Projects->MDI Application.

Salud OS.

dec 04-05-2007 02:04:18

Hola,

Son las conocidas como aplicaciones "MDI" o Multiple Document Interface. Inicia un nuevo proyecto "Application" en Delphi. Dale el valor "fsMDIForm" a la propiedad "FormStyle" del formulario principal de la aplicación.

Añade un nuevo formulario a la aplicación que acabas de crear y dale a su propiedad "FormStyle" el valor "fsMDIChild". Si ejecutas la aplicación en este punto verás que el "Form2" aparece dentro del "Form1", tal como querías.

Trabajar, de todos modos, con esta aplicaciones, conlleva algunos cambios respecto de la forma de trabajo con aplicaciones "SDI" o Single Document Interface. Pero, aquí habrá quien sepa echarte una mano en caso necesario.

Edito: el compañero egostar se me adelantó, pero, no voy a borrar mi mensaje de todos modos, pues creo que puede complementar lo que ha dicho egostar. :)

salvanano 04-05-2007 02:14:28

gracias, las dos respuestas son buenas
seguire escribiendo en este post

salvanano 04-05-2007 02:47:34

Ventanas secundarias
 
Hola, mi cuestión ahora es porque los forms midchild que creo se muestran al iniciar la aplicacion y porque cuando las cierro estas no se cierran sino que se queda minimizadas en el mdiform.

Un saludo

dec 04-05-2007 03:00:18

Hola,

Lo primero ocurre porque estos formularios "MDIChild" se muestran visibles según se crean: y no puede ser de otra forma, además, parece ser. Así que el asunto pasa por crearlos cuando los necesites. Si echas un vistazo al archivo ".dpr" de la aplicación que creamos... en este Hilo, verás algo como esto:

Código Delphi [-]
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.

Pues bien, se trata de eliminar la línea "Application.CreateForm(TForm2, Form2);" para que el formulario no se cree y tampoco se muestre, por tanto.

Respecto de lo segundo, la cuestión está en utilizar el evento "OnClose" de los formularios "MDIChild":

Código Delphi [-]
procedure TForm2.FormClose(Sender: TObject; 
 var Action: TCloseAction);
begin
  Action := caFree;
end;

De ese modo cuando se cierre el formulario este no se ocultará (o minimizará) sino que será liberado.

En todo caso me doy cuenta de mis limitaciones, en general, y, en particular, con las aplicaciones MDI...

Lo mismo hay mejores respuestas de otros compañeros. Pueden esperarse, desde luego. :)


La franja horaria es GMT +2. Ahora son las 00:23:54.

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