Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   2 campos en 1 combobox (https://www.clubdelphi.com/foros/showthread.php?t=37160)

amadis 04-11-2006 02:56:12

2 campos en 1 combobox
 
Que tal gente!

Se pueden cargar 2 campos en un combobox?

Necesitaria cargar 2 campos de una tabla clientes

Por ejemplo se me ocurrió algo que pongo aquí debajo pero no me sirve

Yo necesito seleccionar por ej. el cliente "FRANCISCO PASCASIO MORENO" y que tambien se seleccione su ID de cliente, entonces con ese ID de cliente yo filtro otra tabla que tiene varios clientes y movimientos de clientes.

Necesitaria un Combobox con 2 columnas y que si selecciono un item, me seleccione la columna del codigo y la pase a una variable.
(si el codigo de cliente no queda visible en el combobox mejor aun)
¿me explico?

Aqui dejo mi improvizacion, le sume el codigo a cada cliente pero no me sirve y no queda estetico.

Código Delphi [-]

while not clientes.Eof do
 begin
 comboname.Items.Add(clientesnombre.AsString +' '+ clientescodigo.AsString);
 clientes.Next;
 end;

seoane 04-11-2006 12:04:17

Si entrar en el tema de la base de datos, vamos a intentar solucionar el problema usando las propiedades del combobox:

Para llenar el combobox, utilizamos el método AddObject:
Código Delphi [-]
while not Clientes.Eof do
begin
  Comboname.Items.AddObject(Clientesnombre.AsString, TObject(Clientescodigo.AsInteger));
  clientes.Next;
end;

Para saber el código asociado al cliente seleccionado:
Código Delphi [-]
var
  Codigo: Integer;
begin
  if Comboname.ItemIndex > -1 then
    Codigo:= Integer(Comboname.Items.Objects[Comboname.ItemIndex]);
end;

Ahora no tengo delphi aquí, así que puede haber algún error de sintaxis. Y también ignoro si existe la propiedad asInteger, creo que si, pero si no es así convierte el valor de código a un integer previamente.

amadis 04-11-2006 16:12:02

funciona
 
Funciona de Maravilla! Gracias!

Ahora me podrias traducir/explicar!

Que es lo que hace el AddObject y por que no se ve el numero de cliente.

(No quiero verlo para lo que queria eso me lo soluciono de maravillas) Solo me pregunto porque el Texto si se ve y el numero no.



Gracias

seoane 04-11-2006 16:23:45

AddObject es un método de la clase TStrings, a la que pertenece items, que añade un string a la lista y asocia a ese string un objeto. Como una variable objeto no es mas que un puntero, utilizamos un typecast para asociar un integer al string. Una vez que tenemos la asociación hecha, para cada cadena de la lista podemos obtener el integer asociado.

amadis 04-11-2006 16:26:02

Muchas Gracias
 
Muchas Gracias por tu valiosa ayuda!

jejo1984 14-06-2011 20:23:42

obtener id de un combobox delphi: tambien funca en lazarus
 
Código Delphi [-]
  while not SQLQuery2.EOF do
  begin
    cbox_tip_inci.Items.AddObject(SQLQuery2.Fields[1].AsString,TObject(SQLQuery2.Fields[0].AsInteger));
    SQLQuery2.Next;
  end;
Luego declaras una variable de tipo Integer asi:
Código Delphi [-]
Var idcombo: Integer;

Luego haces esto: usa el IntToStr para convertir la variable:
Código Delphi [-]
  if cbox_tip_inci.ItemIndex > -1 then
  begin
    idcombo:=Integer(cbox_tip_inci.Items.Objects[cbox_tip_inci.ItemIndex]);
    Label1.Caption:=IntToStr(idcombo);
  end;
Espero que sea de mucha ayuda soy un novato recien y quiero aprender más; así como ustedes =)
gracias

Jorge Orozco 22-02-2012 23:47:49

Problema con combobox con tres columnas
 
Como se hace para desplegar tres columnas en un combobox de una tabla de MySql?????????????????????????? He buscado por todo lado y nadie sabe darme una respuesta concreta.

ecfisa 23-02-2012 00:03:27

Cita:

Empezado por Jorge Orozco (Mensaje 425837)
Como se hace para desplegar tres columnas en un combobox de una tabla de MySql?????????????????????????? He buscado por todo lado y nadie sabe darme una respuesta concreta.

Hola Jorge.

Te recomiendo que pongas esta nueva consulta en un nuevo hilo y por favor, lee nuestra guía de estilo.

Un saludo y gracias por tu colaboración.


La franja horaria es GMT +2. Ahora son las 09:21:31.

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