Relative Pfadnamen sind immer ein Glücksspiel. Probier es stattdessen mal mit absoluten:
Delphi-Quellcode:
var
BaseDir: string;
begin
// ParamStr(0) enthält den gesamten "Aufrufnamen" des Programms
// z.B. "C:\Program files\dingsbums\programm.exe -parameter1 -parameter2"
BaseDir := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0)));
// In BaseDir steht jetzt ausgehend von obigem Beispiel
// "C:\Program files\dingsbums\"
{...}
planet[i].loadfromfile(BaseDir + 'Planet1\' + dateiname + '.jpg');
Edit: Was auch noch wichtig zu wissen wäre, wäre WELCHE Fehlermeldung dir angezeigt wird. So können wir nämlich nur rumraten.