Hola a tods! tengo una dudilla...
tengo un Form1 en el cuál tengo un botón, mediante el evento OnClick llamo a:
que me muestra un segundo formulario Form2 que contiene un ListBox1, en el Unit2.cpp:
void __fastcall TForm2::FormCreate(TObject *Sender)
{
MiClass * mio = new MiClass ();
mio -> GetAlgo();
delete mio;
}
Con esto, se supone que cuando clickeo al boton del Form1 y me muestra Form2 directamente llama al método GetAlgo de la clase MiClass que está contenido en un Unit3
y en el Unit3.cpp:
void MiClass::GetAlgo()
{
...
for ( )
{
cadena = .....
Form2->ListBox1->Items->Add(cadena); //con esto me va me va añadiendo las líneas que haga el for
}
if (Form2->ShowModal() == mrOk) //En el Form2 tengo un BitBtn1 con Kind bkOK
{
int num=Form2->ListBox1->ItemIndex;
if (num==1)
{
ShowMessage("algo");
}
if (num == 2)
{
}
}
...
}
Lo que debería hacer el código es:
1.Ejecutar el .exe
2.Mostrarme el Form1
3.Darle el botón del Form1
4.Mostrarme el Form2 que hace que se ejecute el método GetAlgo() de la clase MiClass
5.Se rellena de lineas el ListBox, seleccionar una de ellas
6.Dependiendo cuál he seleccionado, mostrarme lo que yo quiera.
Pero lo que hace cuando ejecuta el código es mostrarme el Form2, (no el Form1 que es quien debe iniciar la aplicación). Tengo Form1 como MainForm en el menú Project->Opcions->Form->MainForm. Así que eso no es.
Alguien sabe porqué?