Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#1

wie Reference to Procedure in generischer TList verwalten

  Alt 2. Nov 2010, 12:21
Delphi-Version: 2010
Delphi-Quellcode:
Type
  THIDDeviceChangeProc = Reference to Procedure(Controler: THIDControler);
  THIDControler = Class(TObject)
    FOnDeviceChange: TList<THIDDeviceChangeProc>;
  End;

Procedure THIDControler.RegisterDeviceChangeProc(Const Proc: THIDDeviceChangeProc);
  Begin
    If not Assigned(Proc) Then Exit;
    If FOnDeviceChange.IndexOf(Proc) < 0 Then
      FOnDeviceChange.Add(Proc);
  End;

Procedure THIDControler.UnregisterDeviceChangeProc(Const Proc: THIDDeviceChangeProc);
  Begin
    If not Assigned(Proc) Then Exit;
    FOnDeviceChange.Remove(Proc);
  End;
Hab grade das Problem, daß .Remove den Eintrag nicht aus der Liste löscht.
Ist echt blöd, wenn "entfernte" Einträge dennoch vorhanden sind, vorallem wenn man dann diese Callbacks auch noch aufruft.

Beim weiteren Forschen ist dann aufgefallen, daß auch .Extract und vorallem .IndexOf die Einträge nicht findet.

Wie kann ich nun bei diesen Referenzen einen korrekten Vergleich implementieren?
$2B or not $2B
  Mit Zitat antworten Zitat