Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   ¿Cuál es el formulario activo? (https://www.clubdelphi.com/foros/showthread.php?t=91792)

Angel.Matilla 28-04-2017 11:51:39

¿Cuál es el formulario activo?
 
Tengo una aplicación hecha en C++ Builder 6. Desde el formulario principal voy llamando a otros formularios.

Estoy implementado ahora una funcionalidad en ese formulario principal con un TTimer que al ejecutarse el evento OnTimer saque un mensaje si se cumplen determinadas condiciones, pero me interesaría que el mensaje sólo se mostrara si no hay ningún otro formulario activo. ¿Se puede saber cual es el formulario activo al ejecutarse el OnTimer?

Ñuño Martínez 28-04-2017 13:40:16

He estado haciendo una pequeña búsqueda por Internet, y en Delphi se puede obtener mediante "Screen.ActiveForm". Dado que Builder también usa la VCL seguramente se pueda mediante "Screen->ActiveForm ()" o similar.

Eso sí, puede que el comportamiento dependa del tipo de formulario (ventana) activa. Es decir, (no sé) quizá sea distinto si la ventana activa es modal o no, si es un diálogo, un "message box"...

Encontré la información en esta pregunta de stackoverflow.

ecfisa 28-04-2017 13:40:52

Hola.

Si, con la variable global Screen.

Un ejemplo:
Código PHP:

void __fastcall TMainForm::Button1Click(TObject *Sender)
{
  
Form2->Show(); Form3->Show(); Form4->Show();
  
Timer1->Interval 3000;
  
Timer1->Enabled true;
}

void __fastcall TMainForm::Timer1Timer(TObject *Sender)
{
  
//if ( Screen->ActiveForm == this ) // ¿ el form activo es el actual ?

  // muestra el nombre del form actual activo:
  
ShowMessage"El Form activo es : " Screen->ActiveForm->Name ); 


Saludos :)

Angel.Matilla 28-04-2017 17:38:24

Muchas gracias. No se me había ocurrido.


La franja horaria es GMT +2. Ahora son las 08:26:32.

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