Moin Florian,
Dein Fehler besteht darin, dass Du zu sehr das, was Du Dir im Klartext gedacht hast in Pascal geschrieben hast.
"Wenn .... dann oder Wenn... dann"
dieses OR in der Mitte ist das Eigentliche Problem.
Kurz geschrieben könnte Deine Funktion so aussehen:
Delphi-Quellcode:
MoveLeft.Enabled := Ship.Left = (Ship.Left-150);
MoveRight.Enabled := Ship.Right = (Ship.Right+150);
(Das sieht jetzt vielleicht etwas verwirrend aus, deshalb eine kurze Erklärung dazu:
Man kann Boolschen Eigenschaften (hier: Enabled) direkt das Ergebnis eines Vergleiches zuweisen (hier, u.a.: Ship.Left = (Ship.Left-150)))
Allerdings würde das dennoch nicht funktionieren, da das Ergebnis immer false wäre (was Dir auch der Compiler als Warning melden würde).
Jan's Lösung müsste funktionieren.