Fórum Pesquisa incremental em listbox #254857

18/10/2004

0

Como posso fazer uma pesquisa parcial em um listbox que é carregado de um arquivo texto???
Ex:

[color=red:ea84e62718]Dados no listbox:[/color:ea84e62718]

[color=green:ea84e62718]Antônio Vergão
Suzana Souza
Jairo Silva
José Souza[/color:ea84e62718]

[color=red:ea84e62718]se eu digitar[/color:ea84e62718] [color=darkblue:ea84e62718]S[/color:ea84e62718] [color=red:ea84e62718]então aparecem:[/color:ea84e62718]
[color=green:ea84e62718]Suzana Souza
Jairo Silva
José Sousor[/color:ea84e62718]

[color=red:ea84e62718]se eu digitar [/color:ea84e62718][color=darkblue:ea84e62718]Sou [/color:ea84e62718][color=red:ea84e62718]aparecem:[/color:ea84e62718]
[color=green:ea84e62718]Suzana Souza
José Sousor[/color:ea84e62718]


Emir Neto

Emir Neto

Responder

Posts

22/10/2004

Lucianols

Eu faria assim, mas tem maneiras mais simples....

private
Itens: TStringList; //aqui guardar todos os itens da lista

procedure Filtrar(Sender: TListBox; Filtrar: String);
var
I: Integer
begin
if Filtrar=´´ then
Exit;
Sender.Items.Text := Itens.Text; //Faz a lista ser preenchida com todos os dados
while I < Sender.Items.Count do
begin
if Pos(Filtrar, Sender.Items.Strings[I]) = 0 then
Sender.Items.Delete(I)
else
Inc(I)
end;
end;


Responder

Gostei + 0

22/10/2004

Lucianols

esqueci uma coisa
antes do while faça o I:=0;


Responder

Gostei + 0

22/10/2004

Emir Neto

Obrigado pela dica, mas meu problema é um pouco mais complexo, veja por que?

Tenho um arquivo texto (ao invés de usar banco de daods estou utilizando um arquivo de texto por limitações de acesso da máquina)

Este arquivo de texto salva os dados do listview, ou seja, se eu remover os que não tem a parte da palavra, quando for fazer novas pesquisar eles não estarão mais no arquivo de texto.
Será que terias uma função que funcionasse assim???


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar