PDA

Visualizza la versione completa : [DELPHI] Congelare un controllo TreeView durante le modifiche


vanzer
24-01-2007, 10:33
Ciao!
Siccome ho molti oggetti da inserire in albero e il reflesh dell' albero per questo dura abbastanza, c' è un modo per congelarlo e reflesciarlo solo quando ha caricato tutti i nodi?

Nikk11
24-01-2007, 12:19
Innanzi tutto metti autoexpand=false, poi
la prima roba che mi viene in mente è mettere Visible:=False; durante il caricamento.

Ciao :ciauz:

vanzer
24-01-2007, 12:51
Grazie Nic11!

Ora in reflesh è umano e io son molto più rilassato!
:unz: :unz:

:yuppi: :yuppi: :yuppi:

alka
24-01-2007, 15:01
Non ho il compilatore a portata di mano, quindi non posso verificarlo, ma se non ricordo male la proprietà Items del controllo TTreeView supporta i metodi BeginUpdate ed EndUpdate che consentono, rispettivamente, di segnalare l'inizio delle operazioni sui nodi della struttura e la corrispondente fine.



TreeView1.Items.BeginUpdate;
try
// ...operazioni sui nodi...
finally
TreeView1.Items.EndUpdate;
end;


In questo modo, la generazione di eventi e l'intercettazione di modifiche durante la revisione della struttura vengono bloccate e rimandate ad un unico aggiornamento che avviene sulla chiamata del metodo EndUpdate.

Non è strettamente necessario, in sostanza, nascondere il controllo visuale.

Ciao! :ciauz:

vanzer
24-01-2007, 15:19
Grazie alka!
in effetti questa metodo è anche più pulito

...e io sono sempre più rilassato!

:yuppi: :yuppi: :yuppi: :yuppi:

Loading