Hallo Leute,
Ich habe ein Array das mehrere Objekte der gleichen Klasse enthält.
Nun möchte ich ein ganz bestimmtes davon löschen, allerdings weis ich nicht welches index die Klasse hat.
Mir steht also nur das Array zur verfügung mit allen objekten drin und das objekt was ich löschen möchte.
Gibt es da eine bestimmte Lösungsmöglichkeit? Also ich hab das bereits über Pointer versucht weil ich dachte man kann die Adressen wo das gespeichert ist miteinander vergleichen...
Hier mal meine Routine:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TAAmeisen.EntferneAmeise (pAmeise: TAmeise); var lx: Integer; begin for lx:= low(kenntAmeisen) to high(kenntAmeisen) do if @pAmeise = @kenntAmeisen[lx] then begin pAmeise.gibFrei; kenntAmeisen[lx]:= kenntAmeisen[high(kenntAmeisen)]; end; setlength(kenntAmeisen, length(kenntAmeisen)-1);
end; |
Allerdings findet der keine Übereinstimmung.
MFG Dornathal
P.S. Ich hoffe das ich die Fachbegriffe (Klasse, Objekte) richtig verwendet habe. Wenn nicht einfach noch mal nachfragen.