- Das Löchen von Elementen aus einer Liste funktioniert nur dann richtig, wenn man for I:=<ende> downto <start> do
verwendet.
Oder von <start> bis <ende> und dabei immer nur auf den kleinsten Index zugreift.
Tja, die Collection in Delphi registriert sich bei ihren enthaltenen TComponents und auch andersrum.
Sobald einer er Beteiligten freigegeben wird, wird die aufgebaute Verknüpfung aufgelöst und die Komponenten aus der Liste ausgetragen.
Siehe meine Firemonkey-Hints. Da hab ich dieses auch endlich selber mal verwendet. Dort speichere ich mir ja in Variablen Zeiger auf die beteiligten Objekte. Um diese Variablen "sauber" zu halten und keine "tote" Verlinktungen zu erhalten, hab ich meine Ojekte ebenfalls entsprechend registriert und räume bei Benachrichtigung dann entsprechend meine Variablen auf.
Wer es nicht schafft seine Verlinkungen sauberzuhalten und eindeutige Besitzverhältnisse sichzustellen (nur Einer darf etwas freigeben ... halt das Highlander-Prinzip "Es kann nur Einen geben") oder es so zu regeln, daß sich alle beteiligten Verantwortlichen untereinander informieren, der sollte besser auf Interfaces umsteigen oder auf andere Managed-Systeme.