Kleiner kommentierter Ausschnitt aus dem Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Form2: TForm2; // lokale Variable mit dem gleichen Namen wie eine globale Variable!!
begin
Form2 := TForm2.Create(nil);
Form2.Show;
// lokale Variable geht für immer verloren
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
// Ups - Zugriff auf globale Variable
Form2.WebBrowser1.Refresh;
end;
Und so hätte man das Problem finden können:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
// Beim Aufruf von Refresh gibt es eine Zugriffsverletzung
// also muss überprüft werden, ob die Objekte wirklich angelegt wurden
Assert(Assigned(Form2));
Assert(Assigned(Form2.WebBrowser1));
Form2.WebBrowser1.Refresh;
end;