FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Grilla con colores
Buenas, estoy con un cliente que quiere que en la grilla (TStringGrid) de datos se vea como en el adjunto.
Lo explico, la grilla tiene la fila seleccionada en un color (azul por ejemplo), y la celda actual en otro color (amarillo...) No he podido lograr el efecto y el tipo rompe las b... noche y día. Gracias.
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
#2
|
||||
|
||||
Hola buscando me econtre un enlace donde muestra como pintar una celda en especifico aqui te lo dejo http://stackoverflow.com/questions/6...in-string-grid
La prueba esta hecha en Lazarus 1.6 pero seguro servira igual en Delphi Bueno y en base a la respuesta del usuario @RRUZ pues hize esto:
Ejemplo: https://www.youtube.com/watch?v=x5kb...ature=youtu.be |
#3
|
||||
|
||||
Hay un problema todo funciona bien hasta que se selecciona una celda gris ahi todo falla estuve buscando el porque sucede pero no lo logro allar
pero bueno el codigo anterior trabaja parcialmente, espero tu lo puedas corregir pero aun asi voy a seguir intentado. Saludos.... |
#4
|
||||
|
||||
Ok. Veo el fuente.
Enviado desde mi iPhone utilizando Tapatalk
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
#5
|
||||
|
||||
Hola después de investigar y preguntar he dado con la solución, cabe aclarar que todo estas pruebas están hechas en lazarus 1.6 pero supongo que funcionara de manera muy similar en Delphi aunque claro puede haber diferencias.
Primero como mencione se necesita utilizar el evento onDrawCell del stringGrid ahi colocamos lo siguiente
El primer if valida que no se pinte las celdas estaticas (las que esta en gris) y solo pinte las celdas que se encuentren en la fila seleccionada por el usuario, el segundo if se encarga de cambiar el color a la celda que tenga el foco, Como mencione arriba había el código tenia unos problemas al momento de de seleccionar las celdas estáticas ya que después no pintaban de manera correcta no se si el problema sea único de Lazarus o también es similar en Delphi. Video donde muestro el error: https://www.youtube.com/watch?v=xu3t...ature=youtu.be Para corregirlo basta con llamar a la propiedad invalidate que lo que hace es informar que se necesita repintar el stringGrid este propiedad se llama dentro del evento OnSelectCell o OnSelection ambas funciona. En mi caso lo puse en OnSelectCell
Agradezco al foro de Lazarus por su ayuda http://forum.lazarus.freepascal.org/...c,33490.0.html Me pareció interesante publicarlo acá por si otros tiene el mismo problema. Saludos..... |
#6
|
||||
|
||||
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
||||
|
||||
Cita:
También un caluroso saludo al foro de Lazarus, que tan bien hace su trabajo. Santiago.
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
#8
|
||||
|
||||
Hola.
Cita:
Salida: Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#9
|
||||
|
||||
Buenísimo.
Muchas gracias.
__________________
Uno es responsable de lo que hace y de lo que omite hacer. |
#11
|
||||
|
||||
Una pequeña variante:
DefaultDrawing debe ser true y goRowSelect debe ser false. LineComment Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
como ver un tipo de datos de una grilla en otra grilla en el mismo form? | calistian | Varios | 5 | 01-10-2008 20:29:04 |
La Grilla | YOSMITH | Gráficos | 1 | 13-06-2007 23:11:50 |
Coleres en las Grilla | josem | Varios | 6 | 06-06-2007 21:05:15 |
Grilla :-( | AndyLupa | Varios | 0 | 20-04-2006 16:51:18 |
bandas en grilla | Andrea Martinez | Varios | 0 | 10-07-2004 07:42:22 |
|