Durch das
imgnew:=TImage.Create(self);
fühlt sich das Formular Form1 für das neue Image "verantwortlich". Da--wie bereits beschrieben--durch imgnew.Free der Instanzenzeiger nicht auf nil gesetzt wird, versucht deshalb das Form1, wenn es selbst freigegeben wird, imgnew erneut freizugeben. Und das funktioniert natürlich nicht.
Abhilfe wurde ja bereits beschrieben:
Delphi-Quellcode:
PopupMenu.PopupComponent.Free;
PopupMenu.PopupComponent := nil;