Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

wie Reference to Procedure in generischer TList verwalten

  Alt 2. Nov 2010, 11: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?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat