8

私はこのような非常に基本的で単純なクラスを持っています:

ユニットローダー;

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、デルファイはメッセージを表示し'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を使用していますが、このエラーを修正できませんでした。誰かが私に道を示したり、これに対する解決策を持っていますか?

4

2 に答える 2

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

間違っています。そのはず

var
  the : TLoader;
begin
  the := TLoader.Create;
于 2012-08-30T18:45:55.483 に答える
6

構文が間違っています。新しいオブジェクトを作成する場合は、コンストラクター呼び出しで変数名ではなくクラス名を使用する必要があります。

procedure TForm1.Button1Click(Sender: TObject);
var
 the : TLoader;
begin
  the := TLoader.Create;
end;
于 2012-08-30T18:46:51.207 に答える