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;