TDBGrid, pintar/negrita texto celda parcial
Saludos
Estoy usando Delphi 2010, y el efecto que quiero lograr es poner en negrita (o colorear, en fin cualquier forma de resaltar texto me vendria bien) parte del contenido de una celda de un TDBGrid; la idea es lanzar una busqueda y resaltar todas los campos en donde coincide el texto buscado Ejemplo: busco "agustin" entonces el DBGrid deberia mostrar
Al grid ademas le asigno estas propiedades:
Lo que hice fue agregar un manejador al evento OnDrawColumnCell, este es el codigo:
Basicamente voy pintando caracter a caracter, en negrita o no, segun se vaya cumpliendo la coincidencia parcial Pero me queda "feo" el texto, asi es como sale: Curiosamente para numeros parece "ir bien", pero el texto sale horrible :( Alguien puede arrojar algo del luz? PD: Otras alternativas de haberlas, encantado de oirlas; por ejemplo, si con otro control VCL es facil lograr el efecto, aunque no sea data-aware, podria escribir la parte de llenar el contenido (un ListView por ejemplo). En lo posible prefiero no usar componentes de terceros |
Hola Agustín.
Fijate si podes sacar algo de provecho de este código de prueba: Esta para ser usado sobre TStringFields (y tendrías que filtrar las columnas deseadas en el condicional) Saludos :) |
Daniel, funciona excelente, muchas gracias
Fue cuestion solamente de hacer un par de ajustes para que quede perfecto Por cierto, es necesario en este caso que DBGrid.DefaultDrawing este a True :) Saludos |
Me alegro mucho que te haya servido :)
Aunque no influye en el funcionamiento del ejemplo, hay un detalle que se me escapó entre las pruebas y que ahora veo... debería ser:
Saludos :) |
Entiendo, es para usar la fuente original del canvas y no forzar a sin estilo (que seria un conjunto vacio, [])
Saludos :) |
Cita:
Si no se pinta el texto en este evento, es necesario invocar al metodo DefaultDrawColumnCell por ejemplo:
|
La franja horaria es GMT +2. Ahora son las 16:29:01. |
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