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 16-04-2010
sidneyb sidneyb is offline
Miembro
 
Registrado: nov 2007
Posts: 53
Poder: 17
sidneyb Va por buen camino
un listBox en un DBGrid?

Buen dia amigos del foro, tengo una duda, espero puedan ayudarme a aclarar...

puedo crear un ListBox dentro de un Grid? es decir, tengo un grid cargado de datos de personas, como sexo, edad, fecha de nacimiento, estado civil, etc. los datos los ingreso por medio de un conjunto de componentes que hay en el formulario, y al querer modificarlos debo usar esos mismos componentes, ahora, quisiera simplificar las cosas para el usuario y permitirle trabajar directamente sobre el grid, por ejemplo, en el campo EstadoCivil tengo cuatro posibles datos, Casado, Soltero, Divorciado, Viudo. Estas posibilidades quisiera mostrarlas en el mismo grid por medio de un ListBox en el mismo sitio de la misma celda, es posible hacerlo? como puedo lograrlo?

Gracias por su colaboracion.
Responder Con Cita
  #2  
Antiguo 16-04-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por sidneyb Ver Mensaje
Buen dia amigos del foro, tengo una duda, espero puedan ayudarme a aclarar...

puedo crear un ListBox dentro de un Grid? es decir, tengo un grid cargado de datos de personas, como sexo, edad, fecha de nacimiento, estado civil, etc. los datos los ingreso por medio de un conjunto de componentes que hay en el formulario, y al querer modificarlos debo usar esos mismos componentes, ahora, quisiera simplificar las cosas para el usuario y permitirle trabajar directamente sobre el grid, por ejemplo, en el campo EstadoCivil tengo cuatro posibles datos, Casado, Soltero, Divorciado, Viudo. Estas posibilidades quisiera mostrarlas en el mismo grid por medio de un ListBox en el mismo sitio de la misma celda, es posible hacerlo? como puedo lograrlo?

Gracias por su colaboracion.
Bueno primero que nada yo creo mas bien te conviene que no sea un ListBox sino mas bien un Combobox
Hace algun tiempo yo implemente un componente llamado ComboStringGrid que tiene precisamente ese comportamiento que estas deseando, el de permitir elegir al usuario una de muchas opciones . Logicamente éste componente utiliza internamente un Combobox para mostrar al usuario opciones para selecionar o elegir en una o varias columnas predeterminadas.
Cabe mencionar que ultimamente le he añadido algunas cositas más,como ser algunas propiedades, si mal no recuerdo en alguna oportunidad lo subi al FTP del club, pero como algunas veces hemos tenidos problemas con el servidor lo cual implica que se haya perdido, por lo cual lo he subido hoy nuevamente, lo puedes encontrar aqui es el archivo zip de nombre "ComboStringGrid-ver 1.1.zip".Para saber como instalarlo y manejarlo debes leer el archivo txt que trae dentro ademas tiene un Demo..
De todas manera si por si acaso no te guste mi componente por ser muy chapuza, en la web existen muchos otros componentes muy bueno como por ejemplo el "xStringGrid" que está en ésta espectacular página de componentes. El xStringGrid trabaja no solo con combobox sino con algunos otros controles. revisalo.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 16-04-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow Disculpenme

No se que me pasó pero tal parece que te entendí que estabas trabajando con StringGrid, pero tal parece que no es así sino mas bien estas trabajando con DBGrid, lo cual implica que mi anterior post sólo es válido para componentes StringGrid.
Bueno... como estás trabajando con DBGrid pues en ese caso no necesitas tener o instalarte algun otro componente, ya que el DBGrid ya tiene implementado lo que necesitas.
Para hacer que en una determinada columna te aparesca un combobox de opciones para que el usuario selecione una y automáticamente se cargue en la celda determinada pues debes poner dichas opciones en la columna específica del DBGrid de ésta manera:
Código Delphi [-]
DBGrid1.Columns[0].PickList.Clear;//reseteo el PickList (Lista de opciones)
DBGrid1.Columns[0].PickList.Add('Casado');//añado casado en la primer columna
DBGrid1.Columns[0].PickList.Add('Soltero');//añado soltero en la primer columna
DBGrid1.Columns[0].PickList.Add('Divorciado');//añado divorciado en la primer columna
DBGrid1.Columns[0].PickList.Add('Viudo');//añado viudo en la primer columna
Eso lo puedes poner en algun evento que tú lo veas conveniente puedes ser en el AfterOpen, etc. de tu Dataset ó al momento de permitir editar o insertar registros.
Cabe destacar que para que se pueda visualizar el combobox es necesario que el usuario tenga el foco el la columna específica y presione la tecla Enter (Intro)..
Espero que ahora sí, te haya podido ayudar.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #4  
Antiguo 16-04-2010
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Para hacer lo que quieres, selecciona en la columna del dbgrid la propiedad PICKLIST.
En ella puedes indicar los valores que quieres que se puedan elegir. Puedes obligar al usuario a elegir entre los valores exclusivamente, o que pueda introducir cualquier valor pero ofreciéndole varios, ...

Personalmente, yo lo que hago es en una tabla de parámetros almacenar estas listas y al crear el formulario, cargarlas sobre la propiedad picklist. De esta manera, si cambiara la lista de opciones, sólo tienes que añadir la opción en la tabla y no será necesario recompilar la apliación.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #5  
Antiguo 16-04-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama


En el caso de la imágen, a los clientes les molesta mucho estar aprendiendose los codigos... y un listbox con el nombre del estado mas que el código mismo es una cuena opción...

Para esto he usado la TJvDBUltimGrid de la JediVCL.. esta grid tiene una propiedad llamada EditControls... donde te permite seleccionar DBControls y asignarlos a las columnas para que entiempo de ejecución se manejen como la imágen.

A la columna le he asignado un TJvDBComboBox que me permite establecer tanto items como valores para esos items.... en los items va el nombre del estado y en valores va el codigo del estado....

igual que fjcg02, estos los lleno con un procedimiento para no andar recompilando cada vez que cambio el nombre de un estado.

Buena caza y buen remar...
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
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
pasar elementos de DBGrid a ListBox Gaatho OOP 2 29-10-2007 18:34:17
Desde un DBGrid a un ListBox eddg Varios 2 05-10-2007 16:29:59
agregar y/o eliminar items de un listbox a partir de otro listbox Goyo PHP 2 27-09-2007 16:46:30
pasar de un dbgrid a un listbox Goyo OOP 13 14-12-2006 20:38:47
listbox DM2005 Varios 10 28-09-2006 05:46:03


La franja horaria es GMT +2. Ahora son las 05:36:11.


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