![]() |
Resaltar TEXTO parcialmente en DBGrid
Hola a todos,
En este truco hay un codigo fuente donde se resalta un texto de un DBGrid que se hace un una busqueda, me gustaria saber si alguien me puede colaborar con un ejemplo de ello, como no soy muy experto no he podido hacer que me funcione. Gracias de antemano. |
Jose Roman, ¿qué problema has tenido? ¿qué error te sale?
¿Qué código estás usando? |
Hola Casimiro, el código lo copio al igual que deduzco que poner el USES, lo que no se es como llamar el procedimiento para que funcione con en evento OnKeyPress de un TEdit, también dicen que debo activar en Options ciertas cosas, pero al hacerlo ya no veo los datos, cabe resaltar que utilizo UNIDAT y MySql con delphi Rio, me disculpan pero esto lo escribí desde mi móvil y no se que hice que se duplicó y no se cómo borrar lo anterior.
|
Pues haces click en el tedit, y en la pestaña "Eventos" haces doble click sobre "onKeypress".
![]() |
Gracias, pero en la descripción habla de SearchString, la cual no veo como asignar el valor del TEdit.
|
Cita:
|
El truco al que te refieres utiliza el evento OnDrawColumnCell de un StringGrid. Tu te estas refiriendo a un TEdit que no tiene ese evento. En ese caso debes hacer un subclasing y capturar el mensaje WM_PAINT o escribir un componente derivado que pinte el texto a tu gusto. Ten en cuenta que lo que hay que hacer es pintar y eso hay que hacerlo cuando toca, es decir, cuando Windows va a pintar.
En cierta ocasión contesté una pregunta sobre cómo cambiar el texto cuando un EDIT está deshabilitado y puse un ejemplo de un nuevo componente derivado de TEdit aquí: cambiar fuente de TEdit en modo ReadOnly Transcribo el código por si te sirve para tomar ideas de lo que tú luego realmente pretendas hacer:
La parte donde pinta el texto es esta:
Como verás, este código no usa la VCL sino que está escrito con API de Windows. La condición para activar el pintado es indiferente, pones la que te haga falta y puedes complicar esa parte hasta donde llegue tu imaginación. La técnica del Subclasing es buena idea si se va a hacer para casos aislados. En caso contrario es mejor escribir un componente. Saludos. |
escafandra gracias bueno punto
|
Para completar el tema he preparado un ejemplo usando subclassing en un Edit. El subclassing lo realizo estilo VCL con el procedimiento que adjunto SetSubCass
Se cambiará a color rojo la primera palabra del texto del Edit sólo si esta deshabilitado y el subclassing activo Subo el código completo y el formulario queda como el de la imagen Gif que se muestra con su funcionalidad.
![]() Saludos. |
La franja horaria es GMT +2. Ahora son las 20:56:59. |
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