hola tengo 3 formularios, el Form1 no tiene parte visible, es un DataModule1, y tiene como unico código:
void __fastcall TDataModule1::DataModuleCreate(TObject *Sender)
{
TForm2 * Form2;
Form2 = new TForm2 (this);
Form2->ShowModal();
delete Form2;
TForm3 * Form3;
Form3 = new TForm3 (this);
Form3->ShowModal();
delete Form3;
}
Con esto creamos el form2, lo mostramos, y los destruimos, y luego lo mismo con el 3, para que esto funcione los formularios 2 y 3 no son creados automáticamente, sino que los creo yo en la función anterior.
Hasta aquí todo va bien, sin embardo si en el form2 añado un botón con el siguiente código:
void __fastcall TForm2::Button1Click(TObject *Sender)
{
Form3->Label1->Caption = "hola";
}
Da error... con esto pretendo cambiar el Caption de una etiqueta que tiene form3, pero da el error "Access violation at address 004023ac in module 'proyect1.exe'. Read of address 000002f0"
al cerrar la ventana de error y el form2, se habre form3 pero sin ninguna modificación en su label1. Por supuesto form2 contiene la linea #include "Unit3.h" para pode acceder a Form3.
Entonces, ¿qué estoy haciendo mal?
Ya he pensado que el problema podria ser que estamos accediendo a Fom3 cuando aún no ha sido creado y he mofidicado el código de Form1 para que quede así:
void __fastcall TDataModule1::DataModuleCreate(TObject *Sender)
{
TForm3 * Form3;
Form3 = new TForm3 (this);
TForm2 * Form2;
Form2 = new TForm2 (this);
Form2->ShowModal();
delete Form2;
Form3->ShowModal();
delete Form3;
}
pero nada, sigue igual.