AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[Andorra 2D ] TObjectlist ableiten

Ein Thema von sabbert · begonnen am 28. Aug 2010 · letzter Beitrag vom 28. Aug 2010
Antwort Antwort
sabbert

Registriert seit: 16. Apr 2008
67 Beiträge
 
#1

[Andorra 2D ] TObjectlist ableiten

  Alt 28. Aug 2010, 22:07
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
Christian
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#2

AW: [Andorra 2D ] TObjectlist ableiten

  Alt 28. Aug 2010, 22:17
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;
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
sabbert

Registriert seit: 16. Apr 2008
67 Beiträge
 
#3

AW: [Andorra 2D ] TObjectlist ableiten

  Alt 28. Aug 2010, 22:21
cool danke für die schnelle Antwort

probier ich gleich mal aus
Christian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz