Pesquisa incremental em listbox

Delphi

18/10/2004

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

Curtidas 0

Respostas

Lucianols

Lucianols

18/10/2004

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;


GOSTEI 0
Lucianols

Lucianols

18/10/2004

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


GOSTEI 0
Emir Neto

Emir Neto

18/10/2004

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???


GOSTEI 0
POSTAR