Zu mindestens solltest du das so machen, dann gibts keinen Absturz, wenn keine Elemente in der Liste sind:
Delphi-Quellcode:
if (Sprites.Count > ID_FIRST) And (Sprites[ID_FIRST].Left < 40) then
Sprites[ID_LEFT].Visible := True
else
Sprites[ID_LEFT].Visible := false;
Nö das ist definitiv falsch! Sorry
Der Sprites.Count ist immer korrekt.
Wenn überhaupt dann liegt es an deinem System der Desktop Ordner muss vorhanden sein.
Ich kann aber nicht den Quelltext manipulieren weil auf deinem System etwas nicht stimmt.
Wie gesagt prüf mal diese Zeile
sDeskTopAdm := GetSpecialFolder(CSIDL_DESKTOP) + '\';
Das sollte dir zurück liefern.
C:\Users\UserName\Desktop\ (Admin) oder C:\Users\Public\Desktop\ (Public).
gruss