Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-01-2010
Avatar de GerTorresM
GerTorresM GerTorresM is offline
Miembro
 
Registrado: nov 2005
Ubicación: Tunja - Boyacá
Posts: 210
Poder: 19
GerTorresM Va por buen camino
Componente DBCheckListBox

Hola a todos:

La situación de hoy es la siguiente:

en un formulario uso un CheckListBox en el cual cargo una serie de datos que provienen de un Dataset, es decir como ejemplo va lo siguiente:

Pequeños Productos
Medianos Productores
Grandes Productores

A su vez utilizo un segundo CheckListBox que coloco en la parte posterior del primer CheckListBox, allí van los códigos que relacionan la información para mi caso la llave primaria, es decir como ejemplo:

1
5
7

En la medida que voy selecccionando o desmarcando un o varios de los items del primer CheckListBox, sucede lo mismo con el segundo CheckListBox, finalmente en el momento de almacenar los datos hago un barrido del los datos del segundo CheckListBox y guardo la información.

Mi pregunta es la siguiente ¿ Existe algún componente de uso libre que me permita mostrar los datos de mi dataset tan como lo hago con el primer CheckListBox, pero que si mostarme me guarde su vez los datos de llave primaria como lo hago con el segundo CheckListBox.?

Para mi caso utilizo Delphi 6 Ver Enterprise.


Gracias de Antemano



gertorresm
Colombia

Última edición por GerTorresM fecha: 14-01-2010 a las 10:15:39. Razón: error de escritura
Responder Con Cita
  #2  
Antiguo 14-01-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por GerTorresM Ver Mensaje
Mi pregunta es la siguiente ¿ Existe algún componente de uso libre que me permita mostrar los datos de mi dataset tan como lo hago con el primer CheckListBox, pero que si mostarme me guarde su vez los datos de llave primaria como lo hago con el segundo CheckListBox.?
Hay una forma sencilla de hacerlo con el propio TCheckListBox, que alguna vez hemos comentado aquí para usarla con controles y componentes similares (que uilizan TStrings).

La propiedad Items del TCheckListBox es un TStrings, que es donde guardas las cadenas. El TStrings tiene un propiedad Object que está pensada para que puedas guardar un objeto cualquiera, asociado a cada cadena del TStrings. De esta forma cada elemento de la lista puede tener asociado cualquier cosa. Puedes crear un objeto, un record,...

Esa propiedad es un Puntero, con el que tú puedes apuntar a lo que quieras.

En mi caso, lo que he hecho alguna vez, es utilizar ese puntero, no para almacenar objetos, sino para almacenar números (teniendo el cuenta que el tipo que alamacena el puntero es numérico).

De esta forma puedes asociar a ese puntero un número utilizando algo así:

(1) Coloca un TCheckListBox en un formulario.
(2) Rellena unas cuuantas cadenas.
(3) en el evento OnShow coloca esto (para rellenar un número a cada cadena)

Código Delphi [-]
var
  i:Integer;
begin
  for i := 0 to (CheckListBox1.Items.Count - 1) do begin
    // Añadir un entero
    CheckListBox1.Items.Objects[i] := Pointer(i * 100);
  end;

Con esto tenemos todas las cadenas con un número asociado (0, 100, 200, 300,...)

(4) En el OnClick del TCheckListBox coloca lo siguiente para comprobar cómo se accede a cada número.

Código Delphi [-]
var
  index:integer;
  PInteger: ^Integer;
  Valor:Integer;
begin
  // Seleccionado
  index := CheckListBox1.ItemIndex;
  // Accedo al valor
  PInteger := Pointer(CheckListBox1.Items.Objects[Index]);
  Valor := Integer(PInteger);

  MessageDlg('Este elemento tiene asociiado el valor: ' + IntToStr(Valor), mtInformation, [mbOK], 0);

Si el numero que debes almacenar (clave) cumple con que se pueda almacenar en un tipo Pointer, esto te puede servir y es bastante sencillo.

Un saludo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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
como comparar cada linea de un componente Memo1 con un componente ListBox1 soma25 C++ Builder 1 31-10-2007 10:02:22
componente SSH didier OOP 2 25-05-2007 22:07:47
Componente Rodrigo Rodrígu OOP 1 29-10-2004 18:14:33
Apuntar una propiedad de un componente a otra de otro componente Majo Varios 10 24-03-2004 19:46:39
componente bd 32 rrojano Conexión con bases de datos 0 20-06-2003 18:24:08


La franja horaria es GMT +2. Ahora son las 02:59:19.


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