Vcl/FMX: Resaltar texto parcialmente
Hola a todos
Este truco sirve cuando por ejemplo mostramos datos en un Grid y queremos resaltar parte del texto (color, negrita, etc). Esta muy bueno cuando hacemos una busqueda parcial, y queda resaltado que parte del string es la que coincide con la busqueda. El efecto buscado seria, si busco Juan que me resalte asi: Juan Juan Carlos Pedro Juan AlgoJuanOtraCosa El codigo en realidad es obra de ecfisa, lo interesante es que el algoritmo es aplicable facilmente a casi cualquier clase, porque todo se basa en codigo RTL para manipulacion de strings, y luego el pintado es usando TCanvas. Es cierto que hay algunas pequeñas diferencias entre el manejo de Canvas Vcl y el de FMX Si yo no he entendido mal, lo que hace Daniel es ir dibujando con el canvas de a "trocitos" el string, dividiendo el mismo en tres partes. En el codigo que voy a usar de ejemplo, simplemente voy a resaltar usando negrita para la parte que coincide y normal para el resto El codigo para Vcl lo pueden encontrar en el hilo original Para FMX, las pruebas las hice con un componente TStringGrid. Es necesario que tengamos TStringGrid.DefaultDrawing a False Luego simplemente metemos un hook para el evento TStringGrid.OnDrawColumnCell Solo hay unas cosas mas que se deben notar:
Efecto conseguido en un TGrid FMX: Efecto conseguido en un TDBGrid Vcl |
^\||/^\||/^\||/
|
Hola,
¡Muchas gracias por compartirlo Agustín! :) |
Hola Agustín.
Muchas gracias por el aporte ^\||/ Saludos :) |
Ejemplo Vcl/FMX: Resaltar texto parcialmente
Hola a todos, se que este tema ya lleva un tiempo, pero hay alguien que tenga un ejemplo, soy algo novato y no se como ejecutarlo y me aparece muchos errores.
Mil gracias |
Cita:
Este es el foro de Trucos, no es para resolver problemas. Gracias :) |
La franja horaria es GMT +2. Ahora son las 01:23: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