Nabend.
hab da ein kleines Problem.
Undzwar habe ich eine TObjectlist abgeleitet um diese für meine eigene Klasse zu gebrauchen.
Diese "Klasse" ist von TImageSprite abgeleitet.
Wenn ich jetzt ein Object mit dem Befehl Remove aus der Objectlist entferne und "ganz" löschen möchte funktioniert das nicht so ganz wie ich möchte.
(D.h. es ist zwar nicht mehr in der Liste aber das Bild bleibt weiterhin zusehen...)
Normale Objekte würden zwar gelöscht, aber in Andorra werden Sprites ja über den Befehl ".Dead" gelöscht...
Somit ist dieses Objekt (falls ich es richtig sehe
) nicht "richtig weg".
Wie kann ich denn den Befehl "dead" in "Remove" einbauen, sodass es keine Fehlermeldungen regnet ?!
Der Basis Befehl in Remove ist ja denke ich Delete, der verändert werden muss oder?!
Bitte um Hilfe
Delphi-Quellcode:
//Dead Befehl
procedure TSprite.Dead;
begin
if (FParent <>
nil)
and (FEngine <>
nil)
and (
not FDead)
then
begin
FEngine.FDeadList.Add(self);
FDead := true;
end;
end;
//Delete Befehl
procedure TList.Delete(
Index: Integer);
var
Temp: Pointer;
begin
if (
Index < 0)
or (
Index >= FCount)
then
Error(@SListIndexError,
Index);
Temp := FList^[
Index];
Dec(FCount);
if Index < FCount
then
System.Move(FList^[
Index + 1], FList^[
Index],
(FCount -
Index) * SizeOf(Pointer));
if Temp <>
nil then
Notify(Temp, lnDeleted);
end;
mfg