Estaba dándole vueltas a vuestros comentarios. Gracias a todos por ellos.
Cita:
Empezado por roman
Posoblemente tienes el formulario del Login en el auto-create y dado que su propiedad Visible está en true, cuando llegas al OnActivate, la ventana ya está visible.
|
Si te fijas en el código que he subido no es así. En el Form1:
Código:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
Application->CreateForm(__classid(TForm2), &Form2);
Form2->ShowModal();
delete Form2;
}
//---------------------------------------------------------------------------
Como podéis ver Form2 no existe hasta que se ejecuta el evento OnActivate y por lo tanto la ventana no está visible cuando se ejecuta el ShowModal(). Además, esta forma de lanzar los formularios la llevo usando años y ayer, de repente, dejó de funcionar. Probaré a situarlo en otros eventos, pero sigo sin entender por qué ha ocurrido de repente. Una solución pasa por reinstalar Builder por si se hubiera modificado alguna propiedad de la instalación; otra cosa no se me ocurre.