![]() |
[Andorra 2D ] TObjectlist ableiten
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 :D) nicht "richtig weg". Wie kann ich denn den Befehl "dead" in "Remove" einbauen, sodass es keine Fehlermeldungen regnet ?! :D:D Der Basis Befehl in Remove ist ja denke ich Delete, der verändert werden muss oder?! Bitte um Hilfe :D
Delphi-Quellcode:
mfg
//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; |
AW: [Andorra 2D ] TObjectlist ableiten
Dafür gibt es in TList die virtuelle "Notify"-Methode, die du überschreiben kannst:
Delphi-Quellcode:
type
TMyList = class TObjectList protected procedure Notify(Ptr: Pointer; Action: TListNotification);override; end; procedure TMyList.Notify(Ptr: Pointer; Action: TListNotification); begin if Action = lnDelete then beign TSprite(Ptr).Dead(); end; end; |
AW: [Andorra 2D ] TObjectlist ableiten
cool danke für die schnelle Antwort :)
probier ich gleich mal aus ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz