Busca Rápida em um ListBox

 

Nesta matéria veremos como realizar uma busca rápida em um controle ListBox, utilizando a função Perform. A dica é o seguinte: teremos um Edit e um ListBox. No ListBox vamos ter uma lista com vários nomes de países. No Edit, iremos digitar o nome do país a ser localizado, só que, quando começarmos a digitar, automaticamente o item no ListBox será selecionado.

Vamos ao exemplo que ficará mais claro o entendimento da dica. Inicie uma nova aplicação no Delphi e no formulário, adicione os seguintes controles: dois Labels, um Edit e um ListBox. Configure o formulário de acordo com a figura abaixo:

 

Vamos ao código de nossa aplicação. No evento Create do formulário adicione o seguinte código:

 

procedure TForm1.FormCreate(Sender: TObject);

begin

  ListBox1.Items.Add ('Argentina');

  ListBox1.Items.Add ('Brasil');

  ListBox1.Items.Add ('Chile');

  ListBox1.Items.Add ('Equador');

  ListBox1.Items.Add ('Guiana');

  ListBox1.Items.Add ('Paraguai');

  ListBox1.Items.Add ('Uruguai');

  ListBox1.Items.Add ('Venezuela');

  ListBox1.Items.Add ('Xangai');

  ListBox1.Items.Add ('Zaire');

end;

 

O código acima irá adicionar os países no controle ListBox assim que o formulário for criado.

E para o evento Change do controle Edit, iremos adicionar o código que irá fazer a busca, ou seja, quando começarmos a digitar, ele irá buscar no ListBox automaticamente, o conteúdo que foi digitado. Veja abaixo:

 

procedure TForm1.Edit1Change(Sender: TObject);

begin

  Listbox1.Perform(LB_SELECTSTRING,0,LongInt(PChar(Edit1.Text)));

end;

 

Veja o nosso exemplo em execução através da figura abaixo:

 

Observe que ao digitarmos a letra "P", automaticamente é selecionado no ListBox o item que começa com essa letra.

 

Lenine Ribeiro

Lenine@globo.com