Thema: Delphi Warum AccessViolation?

Einzelnen Beitrag anzeigen

Benutzerbild von moin339
moin339

Registriert seit: 23. Sep 2002
Ort: Hamburg
136 Beiträge
 
#1

Warum AccessViolation?

  Alt 8. Aug 2003, 18:26
Moin!

Ich habe hier ein kleines testprogramm. Wenn ich zuerst auf Button1 und dannach auf Button2 klicke bekomme ich eine AccessViolation, obwohl die Variable eigentlich definiert ist. Wisst ihr wodran das liegt?

Delphi-Quellcode:
  TTest = class
  private
    TestString : string;
  public
    constructor create;
    procedure ShowString;
  end;

var
  Form1 : TForm1;
  test : TTest;

implementation

{$R *.dfm}

constructor TTest.create;
begin
  TestString := 'Hallo';

  while true do
  begin
    Application.ProcessMessages;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  test := TTest.create;
  test.free;
end;

procedure TTest.ShowString;
begin
  ShowMessage(TestString); // Exception: EAccessViolation
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  test.ShowString;
end;
ciao, moin399
  Mit Zitat antworten Zitat