Das Problem ist in der Komponente zu unterscheiden ob die Position gerade gesetzt wurde nach dem die Komponente aufs form gezogen wurde oder die Position gesetzt wurde nachdem das Projekt geladen wurde. Denn wenn du über Datei->öffnen das Projekt lädst soll die Komponente dort erscheinen wo sie beim speichern lag und nicht bei 0, 0
Left und Top überschreibt man in dem man "SetBounds" überschreibt.
Wenn du Left oder Top änderst wird nämlich SetBounds aufgerufen
Anstelle von
Delphi-Quellcode:
img.Left := 0; //intern: img.setbounds(0, img.top, img.width, img.height);
img.Top := 0; //intern: img.setbounds(img.left, 0, img.width, img.height);
sollte man also lieber
img.SetBounds(0, 0, img.width, img.height);
aufrufen weil dabei SetBounds nur einmal aufgerufen wird