delphi:访问冲突在Create()构造函数的末尾

我有这样一个非常基本和简单的类:

装载机;

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

从Form1中,我这样称呼它:

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

现在,就在the := the.Create部分之后,delphi用'ok'显示消息,然后给我一个错误,并且说Project Project1.exe raised exception class $C0000005 with message 'access violation at 0x0040559d: read of address 0xffffffe4'.

它也显示了这一行:

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

我是delphi的新手。 我正在使用Delphi XE2,我无法设法解决这个错误。 有没有人给我一个path或有这个解决scheme?

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

是不正确的。 它应该是

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

你的语法错了。 如果你正在构造一个新的对象,你应该在构造函数调用中使用类名,而不是variables名:

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