1. Nimm einfach eine "richtige" Komponente, nämlich z.B. die TVirtualStringTree:
http://www.delphi-gems.com/index.php...rtual-treeview
Dort gibt es das Event OnFreeNode, in dem die Anzahl bereits die neue ist:
Delphi-Quellcode:
procedure TForm236.VirtualStringTree1FreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
begin
Caption := IntToStr(Sender.RootNode.ChildCount);
end;
Außerdem ist die Komponente auch deutlich schneller (und einfacher zu benutzen sobald man die
GUI ordentlich von der Datenhaltung trennt).
2. Da du an der Stelle weißt, dass das Item gelöscht werden wird, kannst du doch auch einfach eins von der Anzahl abziehen.