PDA

Ver la Versión Completa : Bitman


Toni
23-05-2003, 15:18:09
Hola a todos,

Tengo un curioso problema con los formularios hijos mdi.
Me he encontrado que si añado otro constructor a un formulario hijo, al utilizarlo para inicializar el formulario me da un error de memoria grave.


__fastcall TForm3::TForm3(TComponent* Owner, int numero)
: TForm(Owner)
{
Caption = AnsiString(numero);
}

El caso es que tengo algunos formularios que ya funcionan asi y ahora me da problemas con otros.

Saludos,

delphi.com.ar
23-05-2003, 17:45:33
No conozco la sintaxis de C++, pero supongo que tu problema es que no llamas, dentro de este contructor, al constructor de la clase antecesora


constructor TForm1.MiCreate(AOwner: TComponent; Numero: Integer);
begin
inherited Create( AOwner );
Caption := IntToStr(Numero);
end;

Toni
26-05-2003, 11:01:28
Hola,

gracias por la respuesta.

El problema no es ese, pues si que llamo al constructor de TForm().

El problema biene porque la clase TForm tiene 3 posibles constructores y la declaracion que yo estaba utilizando coincide con uno de ellos. TForm(TComponent*,int). Si por ejemplo declaro mi nuevo constructor con un prototipo diferente no hay problema y todo funciona bien.

Saludos,