Fazer busca dinamica no TreeView
05/01/2006
0
Como eu faço para em um edit ir buscando num treeview o nome que está sendo digitado ?
eu tenho algo parecido só q tem o edit e um grid, então conforme vou digitando ele busca no grid com Locate.
como faço isso no tree ?
obrigado
Diogo
Diogoalles
Posts
06/01/2006
Diogoalles
hehehe, to penando com essa, pesquisei e tentei algumas coisas mas não consegui.
alguém poderia me ajudar?
valeu
Diogo
06/01/2006
Salsa
faz um for ...
e vai checando se o valor do texto eh igual ou contem noq vc tah digitando... sei la... axu q assim da pra fazer de boa :)
06/01/2006
Diogoalles
preciso de algo que o usuario vá digitando e já busca no treeview, deixando marcado....
similar ao que se faz numa busca num edit onde ele já vai buscando no grid.
valeu
Diogo
06/01/2006
Emerson Nascimento
procedure TForm1.Edit1Change(Sender: TObject); var i, tamanho: integer; no: ttreenode; begin tamanho := length(edit1.text); if tamanho > 0 then for i := 0 to TreeView1.Items.Count-1 do if Copy(TreeView1.Items[i].Text,1,tamanho) = edit1.text then begin no := TreeView1.Items[i]; TreeView1.Select(no); break; end; end;
06/01/2006
Diogoalles
blz?
cara, implementei mas o foco do treeview nem se mexe ele não entra no ´if Copy(TreeView1 ...´
pela logica acho q tá certo o vc tá vendo algo de errado ? ñ sei
valeu mesmo..
Diogo
07/01/2006
Emerson Nascimento
tente assim:
procedure TForm1.Edit1Change(Sender: TObject); var i, tamanho: integer; no: ttreenode; begin tamanho := length(edit1.text); if tamanho > 0 then for i := 0 to TreeView1.Items.Count-1 do if AnsiUpperCase(Copy(TreeView1.Items[i].Text,1,tamanho)) = AnsiUpperCase(edit1.text) then begin no := TreeView1.Items[i]; TreeView1.Select(no); break; end; end;
[size=18:2e69c57e08][b:2e69c57e08]não esqueça de alterar a propriedade HideSelection do TreeView para FALSE.[/b:2e69c57e08][/size:2e69c57e08]
Clique aqui para fazer login e interagir na Comunidade :)