Ver Mensaje Individual
  #4  
Antiguo 01-08-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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 [-]
// cargar el campo domicilio en el combo
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;

// Buscar por términos
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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita