Hat nicht direkt was mit deinem Fehler zu tun aber
Du schreibst
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if form1.OpenDialog1.Execute then
begin
end;
end;
form1 kannst du weglassen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
end;
end;
Du greifst direkt auf die instanzierte Variable zu. Was passiert, wenn das TForm1 neu instanziert wird? Dann greift die neue Instanz auf OpenDialog1 von form1 zu und nutzt nicht die eigene instanz. Noch schlimmer, wenn Form1 nicht das Hauptformular ist, kann es ja sein, daß form1 zufällig mal freigegeben wird, die andre Instanz noch auf form1 zugreift. Dann knallt's.