Originariamente inviato da melk75
Cancella fino ad un certo punto e poi da errore con mess: 'invalid index'!!! :berto:
Dove sto clamorosamente sbagliando!!!???
Sbagli nel punto in cui fai un ciclo usando come estremo superiore il numero di elementi, che non rimane costante ma bensì sì riduce proprio per il fatto che stai eliminando dei nodi.

La soluzione più rapida e indolore, in questo caso, è rovesciare il ciclo.

Prendendo il tuo codice come esempio:

codice:
procedure TFormMyTricks.BitBtn1Click(Sender: TObject);
VAR
  i:integer;
  ic:integer;
begin
  ic:=TreeView1.Items.Count;
  for i := ic - 1 downto 0 do
    begin
      TreeView1.Items[i].Delete;
    end;
Ciao!