xe2 versiones full embarcadero edition community borland delphi delphi-xe2

versiones - Delphi: Infracción de acceso al final del constructor Create()



delphi xe2 full (2)

Tengo una clase muy básica y simple como esta:

Cargador de la unidad;

interface uses Vcl.Dialogs; type TLoader = Class(TObject) published constructor Create(); end; implementation { TLoader } constructor TLoader.Create; begin ShowMessage(''ok''); end; end.

Y desde Form1 lo llamo así:

procedure TForm1.Button1Click(Sender: TObject); var the : TLoader; begin the := the.Create; end;

Ahora, justo después de the the := the.Create , delphi muestra el mensaje con ''ok'' y luego me da un error y dice Project Project1.exe raised exception class $C0000005 with message ''access violation at 0x0040559d: read of address 0xffffffe4''.

También muestra esta línea:

constructor TLoader.Create; begin ShowMessage(''ok''); end; // <-------- THIS LINE IS MARKED AFTER THE ERROR.

Soy nuevo en Delphi. Estoy usando Delphi XE2 y no pude arreglar este error. ¿Alguien me muestra un camino o tiene una solución para esto?


Tienes la sintaxis incorrecta. Si está construyendo un nuevo objeto, debe usar el nombre de la clase, no el nombre de la variable, en la llamada del constructor:

procedure TForm1.Button1Click(Sender: TObject); var the : TLoader; begin the := TLoader.Create; end;


var the : TLoader; begin the := the.Create;

Es incorrecto. Debería ser

var the : TLoader; begin the := TLoader.Create;