Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   DBComboBox posicionarme alfabéticamente (https://www.clubdelphi.com/foros/showthread.php?t=74164)

leogobo 02-06-2011 05:49:09

DBComboBox posicionarme alfabéticamente
 
hola,,

Como puedo hacer para que cuando presione una letra en un TDBComboBox, me comience a ubicar desde el primer item con esta letra en toda la lista que esta organizada alfabéticamente ???

Gracias

ecfisa 02-06-2011 07:41:57

Hola leogobo.

Cita:

me comience a ubicar desde el primer item con esta letra en toda la lista que esta organizada alfabéticamente
No entiendo bién donde queres que te comienze a ubicar, pero que asumo que es en el DataSet.

Previamente vas a tener que realizar la carga de los campos de la columna de tu interés en los items en el evento OnShow, por ejemplo.
Código Delphi [-]
procedure TForm1.FormShow(Sender: TObject);
begin
  Dbf1.Open;
  while not Dbf1.Eof do
  begin
    DBComboBox1.Items.Add(Dbf1.FieldByName('TU_CAMPO').AsString);
    Dbf1.Next;
  end;
  Dbf1.First;
  DBComboBox1.Sorted:= True;
  DBComboBox1.Style:= csDropDownList;
  DBComboBox1.ReadOnly:= True;
end;

Luego en el evento OnChange del DBComboBox:
Código Delphi [-]
procedure TForm1.DBComboBox1Change(Sender: TObject);
begin
   Dbf1.Locate('TU_CAMPO', DBComboBox1.Text,[]);
end;
Al presionar una letra, verás posicionarse en la selección a cualquier control data-aware relacionado al mismo DataSource (DBGrid por ejemplo).

Ahora, si tu intención es sólo posicionarte en el DBComboBox, alcanzaría con el código de FormShow.

Saludos.

BlueSteel 02-06-2011 18:00:03

Que bueno.. no sabia esto asi que lo anoto...

Salu2

leogobo 03-06-2011 21:57:11

hola,

pero los items del TDBComboBox no los tengo en un dataset sino los ingreso por la propiedad TStrings.

ecfisa 03-06-2011 22:43:15

Cita:

Empezado por leogobo (Mensaje 402521)
hola,

pero los items del TDBComboBox no los tengo en un dataset sino los ingreso por la propiedad TStrings.

Una pregunta leogobo... ¿ Estas usando un TDBComboBox sin que esté relacionado a un DataSet? ¿ No estarás hablando de un TComboBox ?



De todos modos seguiría vigente lo que te dije sobre las propiedades:
Código Delphi [-]
  ComboBox1.Sorted:= True;
  ComboBox1.Style:= csDropDownList;

Saludos.

leogobo 04-06-2011 18:06:25

Muchas Gracias ecfisa.

Pues si utilizo el TDBComboBox Pero no para extraer datos de un dbf sino para guardarlos en el. Por eso los items los pongo en la propiedad (TStrings).

De igual forma ya puedo hacer lo que quiero gracias a ti. De nuevo gracias.


La franja horaria es GMT +2. Ahora son las 10:05:16.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi