Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Dos Formularios al mismo tiempo (https://www.clubdelphi.com/foros/showthread.php?t=20511)

lucasarts_18 18-04-2005 04:35:39

Dos Formularios al mismo tiempo
 
hola a todos:

Tengo dos formularios que se ejcutan al mismo tiempo, es decir aparecen al mismo tiempo en la pantalla.

Application.Initialize;
Application.CreateForm(TFrmPowerM, FrmPowerM);
Application.CreateForm(TForm1, Form1);
Application.Run;

al activarse el primero éste de inmediato llama al otro.

procedure TFrmPowerM.FormActivate(Sender: TObject);
begin
Form1.Show;

end;

El problema es que después si quiero ejecutar algunas cosas del otro formulario simplemente no puedo, ya que el foco se queda en el último que se ejecuto o sea:

Form1.Show;

Mi idea es interactuar con los dos formularios en pantalla.

Espero sus ayudas.

Atte Aarón García A.

marcoszorrilla 18-04-2005 07:04:47

Según parece haciendo un "Use" del formulario en el que están esas cosas que quieres ejecutar, desde el otro formulario, sería suficiente.

Desde el menu de Delphi Use eliges el formulario y ya está.

Un Saludo.

Lepe 18-04-2005 10:07:01

Aparte de lo comentado por Marcos situa las dos ventanas una al lado de la otra, de esta forma no se oculta ninguna: algo así:

Código Delphi [-]
form2.left := form1.left+ form1.width;
form2.top := form1.top;

Los "uses" deben estar en la zona de implementación para que delphi no se queje de referencias circulares.

Un saludo

lucasarts_18 18-04-2005 16:05:10

Hola:

Lo hicé como ustedes me dijeron y no me resulta, salvo cuando el segundo formulario lo minimizo, es aquí cuando me permite ejecutar los botones del primer formulario.

Saludos.
Aarón.

Lepe 19-04-2005 00:08:24

OnActivate es un evento que responde justo cuando das el foco a la ventana, por tanto, cuando le das un clic a FrmPowerM para "activarlo", el programa, que es más rápido que tú, muestra el form1, por tanto, jamás vas a poder interactuar con FrmPowerM.

La solución sería en el evento OnShow del FrmPowerM llamar a Form1.Show, de esta forma, la primera vez que se muestra el FrmPowerM, se muestra el Form1, pero al cambiar de nuevo a FrmPowerM, ya no se vuelve a ejecutar ese evento.

Código Delphi [-]
procedure FrmPowerShow(...)
begin
  Form1.Show;
  SetFocus ; // activamos de nuevo el FrmPowerM, 
//             para que el foco quede en él.
end;

Un saludo.

lucasarts_18 19-04-2005 03:46:05

Hola.

Ahora sí que me funciona y puedo interactuar con ambas.

Gracias.

Saludos
Aarón.


La franja horaria es GMT +2. Ahora son las 14:46:11.

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