Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Forzar que un DBLookupComboBox muestre un valor por defecto (https://www.clubdelphi.com/foros/showthread.php?t=68015)

Thoronluin 19-05-2010 21:27:54

Forzar que un DBLookupComboBox muestre un valor por defecto
 
Hola:

Después de buscar, encontrar cosas parecidas y leerme mucho las ayudas; me gustaría preguntarles como se puede hacer lo siguiente.

Antecedente:
Tengo un DBLookupComboBox el cual me muestra una serie de elementos obtenidos (como no, de una tabla :)) antes de seleccionar nada está en blanco el campo que muestra pero al desplegarse nos muestra los elementos que contiene del que podemos elegir uno. Al seleccionar uno de ellos nos devuelve el valor asociado mediante el KeyValue. Bueno hasta ahí el funcionamiento normal.

Ahora lo que intento:
Quiero que cuando se me abra la ventana DBLookupComboBox aparezca con un elemento ya seleccionado a modo de valor por defecto.

Buscando:
Buscando buscando encontré en el foro lo siguiente:

Código Delphi [-]
Table1.FindKey(['Baldwin']);
DbLookUpComboBox1.DropDown;

Al que le sustituí el FindKey por un Locate ya que uso ADOConnection pero es para situarte en un determinado valor de la tabla y no del combo y por tanto no me funciona como quiero.

También intente jugar con los índices pero o no los comprendí o no funcionó y por último se me ocurrió algo muy rebuscado (no lo he probado aún). Usar ADOQuery y filtrar por el valor, así sólo tendría el valor por defecto y en caso de querer otro valor cuando lo despliegue hacer un filtro más general y que me muestre todos los campo. El problema es que seguiría mostrándose en blanco hasta que lo despliegue y una vez desplegado aparecería todos, con lo cual no serviría de nada.

Si alguien se ha encontrado con algo así agradecería su ayuda.

Saludos y muchas gracias por adelantado.

Jhonjhon_123 19-05-2010 22:29:01

Hola

mira, yo no se tu Control como funcione, pero se como funciona el ComboBox, puede que sean similares.

mira, para estableser un valor por default pones simplemente esto:

Código Delphi [-]
ComboBox1.ItemIndex := 0;

y listo, almenos para el ComboBox.

Espero te sirva!

maeyanes 19-05-2010 22:41:21

Hola...

Tu mismo te das la respuesta en tu pregunta... Usando la propiedad KeyValue puedes seleccionar que registro se mostrará...

Ahora, si el TDBLookupComboBox está asociado con un campo (propiedad FieldName), entonces con iniciar ese campo con un valor predeterminado basta.


Saludos...

Caro 19-05-2010 22:45:34

Hola Thoronluin, utiliza la propiedad KeyValue:

Código Delphi [-]
  DBLookupComboBox.KeyValue := Query1.FieldByName('codigo').AsInteger; //codigo sería el campo que has asignado a KeyField

Saluditos

Thoronluin 19-05-2010 23:39:31

Hola a todos y muchas gracias por responder tan rápido.

Empiezo por Jhonjhon_123, en los Combobox es lo que uso pero aquí no me funcionaba.

A maeyanes y Caro, siempre había usado Keyfield como salida pero no sabía que me pudiera funcionar a la inversa. Entonces ¿si fuerzo un valor en el Keyvalue el combo se actualiza mostrando el valor asociado del Listfield? esto es muy interesante y muy útil.

Lo del campo Fieldname no lo recuerdo exactamente ahora como lo tengo, pero lo revisaré.

No tengo el Delphi aquí pero probaré las dos sugerencias mañana a primera hora.

Muchísimas gracias a los tres y ya les contaré.

Thoronluin 22-05-2010 12:00:35

Al final usé la solución propuesta por maeyanes y Caro y funcionó perfectamente.

De nuevo, gracias a los tres.

dardusso23 06-09-2016 17:36:44

Hola! yo estoy usando un DBlookupCOmbobox pero de devExpress y no esta la opcion de keyValue. Alguien sabe cual seria la alguna que funcione de la misma manera?
gracias

maeyanes 06-09-2016 18:00:32

Hola...

Prueba con la propiedad EditValue del cxDBLookupComboBox.



Saludos...


La franja horaria es GMT +2. Ahora son las 03:31:17.

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