PDA

Ver la Versión Completa : Multiselect en DbGrid sin Ctrl


taita
20-07-2004, 11:50:20
Hola a tod@s:
Quisiera saber si alguien puede ayudarme con la siguiente cuestión.
Tengo un DbGrid del que deseo seleccionar varios ítems de una lista. Deseo que éstos queden seleccionados simplemente al hacer 'Click' sobre ellos, uno a uno. Ya he activado el multiselect y funciona con la tecla Ctrl.
Otra cuestión es si existe alguna forma de seleccionar ítems de este Dbgrid a través del método de arrastrar y soltar, haciendo un recuadro mientras dejo pulsado el botón izquierdo del ratón... como en muchas aplicaciones.
Se puede hacer algo de esto?
Gracias y hasta pronto!.

Gydba
20-07-2004, 14:35:18
Me suena bastante raro esto. Considerando que un Dbgrid refleja un dataset, es decir en teoría cualquier cambio en la grilla debería alterar el dataset y esto es algo que no le puedo encontrar mucha utilidad por las cosas que necesitas.

Respondiendo a tu pregunta: si es posible realizar algo así. Lo que pasa es que va a ser un tanto complicado.

Un control que hace más o menos lo que decís es el ListView. Sino componentes comerciales DataAware hay un par por internet, que de mayor o menor medida hacer lo que pedís.

También podrías buscar en Torry algo que te sirva, hay un par de grillas que vale la pena ver. Entre ellas te recomendaría que mires la que viene en el paquete ExDBGrid Component Suite v.3.7

Siento no poder ser más preciso, pero considerá que tu problema es bastante extenso de responder si se quiere que se entienda algo.

Saludos!

taita
27-07-2004, 10:25:05
Hola Gydba:

Gracias por contestar. Lo que me interesa realmente es que al hacer un simple 'click' en el objeto DbGrid (con propiedades rowselect y multiselect activas), la celda que ha sido pulsada quede marcada como seleccionada, manteniendo marcadas también las que estaban anteriormente seleccionadas.
La utilidad es sencilla, realizar procesos por lotes con los datos que muestro en el DbGrid.
Sé cómo hacer que las celdas (en este caso filas) queden seleccionadas, pero no sé como hacer para que se seleccionen sin necesidad de mantener presionada la tecla Ctrl, es decir, con un simple 'click'.
Sobre el uso de componentes externos, no veo necesidad de hacerlo, ya que creo que ha de ser posible realizarlo utilizando utilizando los componentes y métodos standars que trae el Delphi 7 por defecto.

Bueno, a ver si alguien tiene alguna sugerencia para poder hacer esto que he planteado.
Saludos a tod@s

taita
27-07-2004, 10:30:27
Hola de nuevo:

Otra duda que se me acaba de plantear es el cómo hacer para poder ordenar los datos de un DbGrid, al pulsar una de las cabeceras de las columnas de datos que en el se muestran?

acrophet
27-07-2004, 11:46:18
Pues para hacer eso debes usar el evento OnTitleClick del dbgrid y ahi dentro meter tus selects o lo que quieras hacer.
Por cierto, el nombre de la columna es column.Field.FieldName, te hara falta para hacer las consultas sql.
Un saludo.

Gydba
27-07-2004, 21:52:24
Sobre el ordenamiento:
http://www.clubdelphi.com/foros/showthread.php?t=9225&highlight=dbgrid+ordenar
http://www.clubdelphi.com/foros/showthread.php?t=2938&highlight=dbgrid+ordenar
http://www.clubdelphi.com/foros/showthread.php?t=7524&

En cuanto a lo otro:
La RxDBGrid trae un evento (OnDrawColumnCell) que permite manipular el color y otras yerbas de las filas. Tal vez conbinando SelectedRows podrías hacer algo, pero como dije antes sería demasiado largo de explicar.

taita
03-08-2004, 11:16:11
Gracias a ambos por responder.
Deciros que me han sido bastante útiles vuestros consejos. Esto ya está casi listo.
Gracias de nuevo.