Fórum como perquisar uma string dentro de um ListBox #297716
29/09/2005
0
Gostaria de saber como pesquisar uma string dentro de um ListBox , entao selecionar a linha que sta essa string
Tipo : Listbox.itemIndex := ´a linha que esta a string´
se tiver alguma alma bondosa por perto pra me dar essa dica eu agradeço !!!!
um abraço a todos !!!!
Fabiano Góes
Curtir tópico
+ 0Posts
29/09/2005
Michael
A classe [b:5d8e98fe56]TStrings[/b:5d8e98fe56], responsável pelo armazenamento dos dados em diversos componentes da VCL (ComboBox, ListBox, Memo, etc), provê o método [b:5d8e98fe56]IndexOf[/b:5d8e98fe56], que retorna o índice da string informada dentro da lista de dados, ou -1 se nada for encontrado.
ListBox1.ItemIndex := ListBox1.Items.IndexOf(´Minha string´)
[]´s
Gostei + 0
29/09/2005
Bruno Belchior
Gostei + 0
29/09/2005
Michael
Gostei + 0
29/09/2005
Fabiano Góes
não é querendo ser chato não mais não está funcionando,
olha quando o form e aberto o lisxtbox recebe um arquivo texto, e o foco vai para a primeira linha (listbox.ItemIndex := 0)
ai quando tento fazer apesquisa:
ListBox1.ItemIndex := ListBox1.Items.IndexOf(edit1.text);
´obs: estou pesquisando uma string que estou vendo ela no lisxtbox´
então o listboxbox.itemindex fica igual a -1
mais eu sei que a string existe porque estou vendo ela no listbox.
Gostei + 0
29/09/2005
Steve_narancic
ListBox1.ItemIndex := Listobox1.Perform(LB_SELECTSTRING, 0, LongInt(PChar(edit1.text)));
Gostei + 0
29/09/2005
Fabiano Góes
pois na verdade estou pesquisando uma subString( desculpe michael )
tem como solucionar isso ???
Gostei + 0
29/09/2005
Fabiano Góes
Valeu Michael , Bruno, steve_narancic.
Está funcionando beleza, mais tem um porem :
e sem tiver mais de uma string(pesquisada) iguam ???? :?:
tem como fazer um pesquisa daquele ponto pra frente ??
Tipo (F3) Procure Novamente ;
Gostei + 0
29/09/2005
Steve_narancic
Gostei + 0
29/09/2005
Fabiano Góes
será que você poderia me passar um código de exemplo ?
Por favor .....
Gostei + 0
29/09/2005
Michael
Vc pode criar uma função para isso então. Veja:
function IndexOfEx(StringList : TStringList; const Text : string; StartIndex : integer = -1) : Integer; var I : Integer; begin Result := -1; for I := StartIndex + 1 to StringList.Count - 1 do if Pos(Text, StringList[I]) > 0 then begin Result := I; break; end; end;
Criei esta função agora, portanto, não sei se vai funcionar. Mas teoricamente deve ocorrer tudo bem.
Se vc chamá-la com apenas dois parâmetros, ela vai pesquisar desde o início da lista. Para simular um F3, vc deve informar no 3º parâmetro a posição atual da lista.
[]´s
Gostei + 0
29/09/2005
Fabiano Góes
um grande abraço !!!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)