Ver Mensaje Individual
  #2  
Antiguo 16-02-2011
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 hgiacobone.

Tanto el DBLookupComboBox como el DBComboBox representan visualmente los valores de los campos que existen en
una tabla. Por lo que si no existe un campo con el valor '< mostrar todos >', al menos yo, no veo la posibilidad de implementarlo.

Lo que creo que podés hacer es usar un ComboBox. Asignar en la primera posición la cadena que desees, luego llenarlo con
los campos de la tabla y usar el evento OnChange del Combo para actualizar la seleccion realizada en el mismo.

Te pongo un ejemplo:
Código Delphi [-]
...
procedure TForm1.FormShow(Sender: TObject);
begin
  ComboBox1.Items.Clear;
  ComboBox1.Items.Add('< mostrar todos >');
  IBQuery1.Close;
  IBQuery1.SQL.Clear;
  IBQuery1.SQL.Add('SELECT * FROM COUNTRY');
  IBQuery1.SQL.Add('ORDER BY COUNTRY');
  IBQuery1.Open;
  while not IBQuery1.Eof do
  begin
    ComboBox1.Items.Add(IBQuery1.FieldByName('COUNTRY').AsString);
    IBQuery1.Next;
 end;
 IBQuery1.First;
 ComboBox1.ItemIndex:= 0;
 ComboBox1.Sorted:= True;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  IBQuery1.Close;
  IBQuery1.SQL.Clear;
  if ComboBox1.ItemIndex = 0 then
  begin
    IBQuery1.SQL.Add('SELECT * FROM COUNTRY');
    IBQuery1.SQL.Add('ORDER BY COUNTRY');
  end
  else
  begin
    IBQuery1.SQL.Add('SELECT * FROM COUNTRY WHERE COUNTRY = :COUNTRY');
    IBQuery1.SQL.Add('ORDER BY COUNTRY');
    IBQuery1.ParamByName('COUNTRY').AsString:= ComboBox1.Text;
  end;
  IBQuery1.Open;
end;
...

Un saludo.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 16-02-2011 a las 01:03:23.
Responder Con Cita