![]() |
Como seleccionar un rango de celdas con Ctrl+clic de un StringGrid
1 Archivos Adjunto(s)
Hola a todos, tengo un problema que no se como solucionar, e buscando en diferentes foros y no encuentro una solución o alternativa. La cuestiona es la siguiente, tengo un StringGrid y quiero seleccionar un rango de celdas, eso es fácil de hacer, el problema es cuando quiero seleccionar un rango de celdas de diferentes filas.. para explicarme mejor les adjunto la siguiente imagen.
Archivo Adjunto 3666 quiero que al dar clic, en este caso en el numero 3 y al bajar hasta el numero 1 la selección se vea como en la imagen.. Si alguien me puede ayudar se los agradecería mucho NOTA: uso Delphi 2005 |
Los eventos OnMouseDown y OnMouseUp te indicarán donde se presionó el botón del mouse y el estado de CTRL, ALT, SHIFT y qué botón del mouse se ha presionado.
Con esto y las coordenadas podrás averiguar qué celda se ha seleccionado y pintarla según corresponda. |
Revisa la propiedad Selection
Edito: Ahora me doy cuenta que no te sirve esa propiedad porque tenés selecciones no contiguas. La unica forma que se me ocurre es como comentan arriba, pintando las filas seleccionadas por el usuario. Tendrías que mantener una estructura adicional que indique que el estado de cada fila (seleccionado o no) Algo más sencillo es utilizar un chechbox embebido en cada fila. Hay ejemplos en el foro. Si te pasas a TListView esto viene resuelto solamente marcando la propiedad Checkboxes a True |
Hola.
Fijate si este ejemplo es similar a lo que buscas hacer:
Salida: ![]() Saludos :) |
La franja horaria es GMT +2. Ahora son las 00:42:08. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi