Wenn ich das richtig sehe ist gS[Item] vom Typ TSprite.
Lass bitte bei Swap mal das var weg.
Also eher sowas:
Delphi-Quellcode:
procedure SWAP(Value1, Value2: TSprite);
var
lTemp: TSprite;
begin
lTemp := Value1;
Value1 := Value2;
Value2 := lTemp;
end;
Aufruf dann so:
SWAP(gS[FlagFound], gS[Item]);
Wenn's das auch nicht ist, sollte ich den Rechner ausschalten und mich auf's Ohr hauen