Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    28

    [DELPHI] cancellazione nodi e subnodi in un TreeView

    Ciao a tutti, spero che dalle vostre parti faccia meno caldo che in Sicilia visto che siamo solo a maggio! :master:
    Sto sviluppando un programmino in cui uso un componente TreeView, nel quale vengono caricati manualmente dei nodi con i rispettivi sottonodi. Ad un certo punto ho bisogno che i nodi e i sottonodi vengano cancellati completamente...insomma che non rimanga più nulla visualizzato nel componente! Credevo di aver risolto così:

    codice:
    procedure TFormMyTricks.BitBtn1Click(Sender: TObject);
    VAR
      i:integer;
      ic:integer;
    begin
      ic:=TreeView1.Items.Count;
      for i := 0 to ic - 1 do
        begin
          TreeView1.Items[i].Delete;
        end;
    invece no ! Cancella fino ad un certo punto e poi da errore con mess: 'invalid index'!!! :berto:
    Dove sto clamorosamente sbagliando!!!???

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    28
    Ragazzi..pensavo di ricevere una mare di "insulti" e "rimproveri" per questo post..insomma pensavo di essermi perso in una banalità..ma visto che nessuno ha risposto forse non si tratta proprio di una banalità!!!

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    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!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Vedo doppio o qui una marea di gente oggi ha voglia di Delphi?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da XWolverineX
    Vedo doppio o qui una marea di gente oggi ha voglia di Delphi?
    No, solo io.

    Ho solo cercato di rispondere ad alcune domande delle recenti domande su Delphi (vecchie al max di un paio di settimane).

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.