Hola cmfab.
No conozco un componente con esas características, pero como para darte una idea, podrías implementar algo con un comportamiento similar mediante un
TComboBox y, en este ejemplo, un
TSpeedButton:
Código Delphi
[-]
procedure TForm1.FormCreate(Sender: TObject);
begin
with IBQuery1 do
begin
Close;
SQL.Text:= 'SELECT * FROM CLIENTES';
Open;
while not eof do
begin
ComboBox1.Items.Add(FieldByName('DOMICILIO').AsString);
Next;
end;
end;
ComboBox1.ItemIndex:= 0;
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
TS: TStringList;
s: string;
i: Integer;
begin
TS:= TStringList.Create;
TS.Delimiter:= ' ';
TS.DelimitedText:= UpperCase(ComboBox1.Text);
s:='WHERE ';
for i:= 0 to TS.Count-1 do
s:= s + 'DOMICILIO' + ' CONTAINING UPPER('+ QuotedStr(TS[i]) + ')AND ';
SetLength(s, Length(s)-Length(')AND'));
with IBQuery1 do
begin
Close;
SQL.Text:= 'SELECT * FROM CLIENTES ' + s;
Open;
end;
end;
De este modo podras filtrar por 2, 3,...,N términos ( siempre que estén separados por un espacio ). Desconozco si tu
SGBD soporta la cláusula
CONTAINING pero seguramente tenga alguna similar.
Saludos.