PDA

Ver la Versión Completa : Cambiar los ItemIndex de un combobox en XE7


palma2039
19-02-2015, 15:46:48
Buenas,

Soy un tanto nuevo en delphi y tengo un pequeño problema, estoy usando xe7 y quiero cargar una lista de personas que tengo en una base de datos sqlite en un combobox, la tabla de la base de datos tiene dos campos nombre e ID y en el combo quiero cargar esos dos datos, el nombre que es el que se va a mostrar y el ID que estara oculto en el itemindex. Esto lo estoy haciendo con LiveBindings pero el problema es que no logro que el combo me almacene los ID en el itemindex sino que el combo siempre matiene los ids por defecto (0, 1, 2, 3, 4) alguien sabe que tipo de relación o enlace debo hacer en el livebindings para hacer que se almacene el ID de la base de datos y no el que trae por defecto el combo?

Saludos

ecfisa
19-02-2015, 17:30:54
Hola palma2039, bienvenido a Club Delphi :)

Como acostumbramos con los que inician, te invitamos a que leas nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php).

No he tenido la oportunidad de probar Delphi XE7 pero creo que no debe haber cambiado tanto la funcionalidad del ComboBox. De modo que me animo a sugerirte revisar los métodos AddItem o AddObject, en este enlace tenes un ejemplo de uso: Campo clave y campo valor en un ComboBox (http://www.clubdelphi.com/foros/showthread.php?t=84542)

Saludos :)

palma2039
19-02-2015, 17:50:15
Hola Eficsa,

Gracias por responder, ya he explorado lo que se indica en post me pasaste pero el asunto es que usando el livebindings el BindSourceDB llena el combo (ver imagen), esto yo no lo hago desde codigo, se que en codigo lo puedo hacer pero me gustaria saber como es la configuración desde el livebingins para hacerlo desde ahi, supongo que debe haber alguna manera pero no lo he conseguido.



Gracias y saludos,
3129

ecfisa
19-02-2015, 18:41:44
Hola palma2039.

Entiendo... Revisando encontré este enlace (https://forums.embarcadero.com/message.jspa?messageID=656408) que si bién no es una solución en tiempo de diseño, tal vez te pueda servir.

Saludos :)

Neftali [Germán.Estévez]
20-02-2015, 08:45:51
es que no logro que el combo me almacene los ID en el itemindex sino que el combo siempre matiene los ids por defecto (0, 1, 2, 3, 4)

Independientemente de que estés utilizando LiveBindings o no, tal y como han dicho, el TCombobox no ha cambiado tanto desde versiones anteriores, así que no es un problema de la versión.
Es un problema de que la propiedad ItemIndex del TCombobox no se puede modificar (salvo hacer cosas muy raras que te van a dar muchos más problemas) para almacenar un valor artitrario. El ItemIndex es la propiedad que te permite saber cual es el elemento activo. El primero, el segundo, el tercero,...

No es una propiedad que puedas modificar para almacenar otro valor, porque perdería su funcionalidad y posiblemente provocaría un malfuncionamiento del componente.