Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-11-2009
r1d2m3 r1d2m3 is offline
Miembro
 
Registrado: nov 2009
Posts: 88
Poder: 15
r1d2m3 Va por buen camino
como usar tcombobox

Nueva pregunta, necesito llenar con tcombobox con una lista de nombres y asociar a cada item del combo, su clave primaria, de manera tal que al seleccionar un elemento del combo, pueda capturar el id de dicho registro. Esto en vb y en c# era bastante facil, en vb se usaba, creo que un elemento llamado itemdata(combo.listindex), y en c#, un item de un combobox puede recibir un objeto con lo cual, puedo disponer de un objeto completo dentro de un item. ¿como se puede realizar esto con delphi? Vi un link para descargar un componente de este tipo, pero está probado hasta delphi 7 y yo estoy usando delphi2007, no se si esto me puede traer algún iconveniente mas tarde.

Saludos y gracias.
Responder Con Cita
  #2  
Antiguo 27-11-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola r1d2m3, para añadir elementos debes utilizar Add pero en tu caso como quieres asociarlo a tu codigo deberías utilizar AddObjects, quedaría así:

Código Delphi [-]
 ComboBox.Items.AddObject('nombre', TObject(codigo));

Y si quieres recuperar el codigo del item seleccionado:

Código Delphi [-]
 Cod := Integer(ComboBox.Items.Objects[ComboBox.ItemIndex]);

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 27-11-2009
r1d2m3 r1d2m3 is offline
Miembro
 
Registrado: nov 2009
Posts: 88
Poder: 15
r1d2m3 Va por buen camino
gracias por la respuesta, muestro lo que estoy haciendo y, por favor, corrijanme si está mal, luego del codigo haré la pregunta del millon

Código Delphi [-]
    
for i := 0 to Length(_lstAux) - 1 do begin
      _objAux:= TUsuario.Create;
      _objAux.P_CodUsr := _lstAux[i].idItem;
      _objAux.P_NomApel := _lstAux[i].descripItem;
      cmb_roles.Items.AddObject(_lstAux[i].descripItem, TObject(_objAux));
    end;

_objAux es un objeto creado a partir de una clase mia
en _objAux.P_CodUsr y _objAux.P_NomApel, guardo el código que me interesa recuperar y la descripción del item, luego agrego este objeto al combo y hasta ahí todo bien, se carga y se muestra sin problemas, lo que no comprendo es como recuperar P_CodUsr del objeto que se encuentra alocado en el item del combo ¿me comprenden la pregunta?, espero que si y que me puedan ayudar
Responder Con Cita
  #4  
Antiguo 27-11-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola de nuevo, si solo es el codigo que quieres guardar, solo asignale eso y no el objeto pero también se puede, si solo guardas el codigo como te lo pongo en el codigo de abajo, recuperas de la forma que te dije.

Código Delphi [-]
 _objAux.P_CodUsr := _lstAux[i].idItem;
 _objAux.P_NomApel := _lstAux[i].descripItem;
 cmb_roles.Items.AddObject(_lstAux[i].descripItem, TObject(_lstAux[i].idItem));

 //Suponiendo que tu codigo es un Integer
 Cod := Integer(cmb_roles.Items.Objects[cmb_roles.ItemIndex]);

En caso de que guardes el objeto, entonces haces el Cast a tu objeto y accedes a CodUsr.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 27-11-2009
r1d2m3 r1d2m3 is offline
Miembro
 
Registrado: nov 2009
Posts: 88
Poder: 15
r1d2m3 Va por buen camino
Gracias caro, ya lo tengo, realmente para lo que necesito que simplemente es transferir el id a un objeto luego de haber seleccionado un item, no necesito gastar memoria grabando el objeto en si.

aprovecho el hilo para preguntarte lo siguiente, ¿como hago para que el combobox me muestre el item asociado al id en cuestión cuando lleno la pantalla con los datos que provienen de mi base de datos?. En dicha base, lo que guardaré será el id, no la descripción y por ello, al realizar un ABM, cuando ponga los datos en pantalla para una modificación, tendré que mostrar el item asociado a su id que corresponda.

Saludos.
Responder Con Cita
  #6  
Antiguo 05-12-2009
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
El mismo

Si lo que quieres es usar un campo codigo para referenciar y visualizar un Nombre, pues solo usa un objeto DBLockupComboBox y asignas las propiedades ListSource al datasource que tengas para cargar, ListField el campo que vas a mostrar (Nombre) y KeyField el campo codigo.

Luego haces referencia usando la propiedad KeyValue, ya sea para asignar la posición como para obtenerla y no te la compliques tanto.

Saludos!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TComboBox calogero Varios 5 19-01-2007 17:20:20
Problemas con TComboBox fedecm Varios 4 30-06-2004 16:58:04
Buscar en un TCombobox yusnerqui Varios 6 27-03-2004 16:05:50
TCombobox en un DBGrid? champy Varios 1 13-09-2003 23:57:05
Como paso un la intancia Tstrings de un TComboBox (ComboBox.items) por parametro? orfeo OOP 1 05-05-2003 07:58:52


La franja horaria es GMT +2. Ahora son las 09:11:50.


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
Copyright 1996-2007 Club Delphi