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