我有一个非常基本和简单的类:
单位装载机;
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 XE2,我无法设法修复此错误。有没有人给我看路径或有解决方案?
答案 0 :(得分:16)
var
the : TLoader;
begin
the := the.Create;
不正确。它应该是
var
the : TLoader;
begin
the := TLoader.Create;
答案 1 :(得分:5)
你的语法错了。如果要构造新对象,则应在构造函数调用中使用类名而不是变量名:
procedure TForm1.Button1Click(Sender: TObject);
var
the : TLoader;
begin
the := TLoader.Create;
end;