Apagar item treeview - perfomance

Delphi

08/11/2007

Boa tarde a todos.

Pessoal estou com uma treeview q tem 2000 itens (abaixo de um nó). Quando deleto um item da tree, está muito lento.

Como estou percorrendo a arvore sequencialmente (do item 0 até o último), quanto mais ´abaixo´ o item mais lento fica a deleção.

Alguem tem alguma ideia de como melhorar isso? Estou iniciando em delphi por isso a pergunta basica

grato a todos.


Renan.cb

Renan.cb

Curtidas 0

Respostas

Renan.cb

Renan.cb

08/11/2007

segue trecho da pesquisa.

nodeDel := tvwFuncionarios.Selected.Parent;
for i := 0 to nodeDel.Count - 1 do // pega somente itens do mesmo nó - agiliza pesquisa
if nodeDel.Item[i].Selected then
begin
_rScript := ´DELETE FROM HE23 WHERE HE23_ST_MATRICULA = ´´¬s´´´;
_rScript := Format(_rScript, [TItemFuncionario(nodeDel.Item[i].Data).Matricula]);
_rScripts.Add(_rScript);
_rScript := ´DELETE FROM HE02 WHERE HE02_AT_COD = ¬d´;
_rScript := Format(_rScript, [TItemBase(nodeDel.Item[i].Data).Codigo]);
_rScripts.Add(_rScript);
end;
dmMain.proExecutaLines(_rScripts, OnQryProgress);
tvwFuncionarios.Selected.Delete;


GOSTEI 0
Renan.cb

Renan.cb

08/11/2007

pô pessoal acho q to fazendo caca ... nao precisa percorrer ... é só deletar o selecionado
valeu


GOSTEI 0
POSTAR