Fazer busca dinamica no TreeView
olá Pessoal
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
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
Curtidas 0
Respostas
Diogoalles
05/01/2006
bom dia pessoal
hehehe, to penando com essa, pesquisei e tentei algumas coisas mas não consegui.
alguém poderia me ajudar?
valeu
Diogo
hehehe, to penando com essa, pesquisei e tentei algumas coisas mas não consegui.
alguém poderia me ajudar?
valeu
Diogo
GOSTEI 0
Salsa
05/01/2006
faz um loop ... pega qntos itens tem no treeview... usando .count
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 :)
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 :)
GOSTEI 0
Diogoalles
05/01/2006
ñ vai me ajudar mt,
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
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
GOSTEI 0
Emerson Nascimento
05/01/2006
altere a propriedade [b:1bad1439ae]HideSelection[/b:1bad1439ae] do TreeView para [b:1bad1439ae]FALSE[/b:1bad1439ae] e use a seguinte rotina no OnChange do seu componente Edit:
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;
GOSTEI 0
Diogoalles
05/01/2006
e ai emerson
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
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
GOSTEI 0
Emerson Nascimento
05/01/2006
talvez o problema esteja na ´caixa´ dos caracteres.
tente assim:
[size=18:2e69c57e08][b:2e69c57e08]não esqueça de alterar a propriedade HideSelection do TreeView para FALSE.[/b:2e69c57e08][/size:2e69c57e08]
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]
GOSTEI 0
Diogoalles
05/01/2006
Blz, funcionou 100¬.
obrigado !
obrigado !
GOSTEI 0