Hola, creo q esto te puede servir, lo he hecho asi rapido, no lo he probado mucho, pero en mis mini-Tests hace lo q tu quieres:
Código Delphi
[-]procedure BuscaPalabra(Palabra: String; ListBox: TListBox; CaseSensitive: Boolean = False);
...
procedure TForm1.BuscaPalabra(Palabra: String; ListBox: TListBox;
CaseSensitive: Boolean);
var
n: Integer;
function doCaseSensitive(LaPalabra: String): String;
begin
if not CaseSensitive then
Result:=LowerCase(LaPalabra)
else
Result:=LaPalabra;
end;
begin
Palabra:=doCaseSensitive(Palabra);
for n:=0 to ListBox.Items.Count - 1 do
if Pos(Palabra, doCaseSensitive(ListBox.Items[n])) > 0 then
begin
ListBox.ItemIndex:=n;
Exit;
end;
end;
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
BuscaPalabra(Edit1.Text, ListBox1);
end;
Lo unico, q he hecho q filtre despues de soltar una tecla en el TEdit, en lugar de un boton, pero vamos, q eso tiene facil solucion!
Saludos.