Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Duda con DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=81350)

marcial 06-11-2012 20:54:46

Duda con DBGrid
 
Hola a todos
Trabajo con D5 y me gustaria saber si se puede (y a ser posible como) cambiar el color letra a letra (no el fondo ni el contenido completo de la celda) de las celdas de un DBGrid o de un JvDBGrid
Por ejemplo, en un Edit pongo el texto a buscar que podría ser "coral". Entonces, si en la celda Descripcion del DBgrid aparece un articulo con descripción: "Bola de coral verde" lo que quiero es que aparezca "Bola de coral verde" (es decir, sólo palabra o letra que coincida con las del edit y no el contenido completo)
Muchas gracias por vuestra ayuda

Neftali [Germán.Estévez] 07-11-2012 19:56:49

Revisa ejemplos de los eventos DrawCell o DrawcoloumnCell del DBGrid. Al final se trata de pintar el texto "a mano" dentro de la celda.
Por ejemplo, este es un trozo de código que uso en uno de mis ejemplos, es para pintar un texto dentro de una celda:

Código Delphi [-]

  // Se debe pintar?
  if not (EmptyDS) then begin
    // porcentaje
    DrawRect := Rect;
    InflateRect(DrawRect, -2, -2);
    TDBGrid(Sender).Canvas.Brush.Style := bsClear;
    fLeft2 := DrawRect.Left + (DrawRect.Right - DrawRect.Left) shr 1 -
              (TDBGrid(Sender).Canvas.TextWidth(StrValue) shr 1);
    // Pintar el texto
    TDBGrid(Sender).Canvas.TextRect(DrawRect, fLeft2,
                                    DrawRect.Top + SPACE_TO_CENTER_CELLTEXT, StrValue);
  end;

En este caso lo que hago es "repintar" el texto "a mano" para centrarlo en la celda.
En tu caso es algo similar, pero deberás cambiar los colores a medida que pintas el texto.

Este código está dentro del OnDrawColumnCell.

marcial 07-11-2012 21:40:50

Gracias Neftali por responder.
Aunque trabajo con D5 y sin Midas, estoy viendo el ejemplo de tu página para entender mejor tu respuesta. Me pongo a trabajar sobre ello.
Gracias

nlsgarcia 07-11-2012 22:36:36

Neftali,

Excelente ejemplo el de Dibujar Porcentajes en las Celdas de un Grid ^\||/

¿Tendras algún ejemplo que inserte dentro del Grid (DBGrid o StringGrid) controles tales como un CheckBox o un ComboBox?

Gracias de antemano :)

Nelson.

Casimiro Noteví 07-11-2012 22:55:47

Aquí tienes un sencillo ejemplo para conseguir todo esto:

* Show and Edit Memo Fields
* Show and Edit Graphic Fields
* Display a DateTimePicker in date fields
* Simulate a "chexkbox" in boolean fields
* Sort dataset (by cliking in column title
* Format Cells
* Paint individual rows
* Define suspended lists
* Show Memo fields using LineBreak
* Paint Small icons in Cells
* All features are avaliable in a included Kylix version (CLX)

nlsgarcia 07-11-2012 23:06:59

Casimiro Notevi,

Excelente ejemplo, Muchas Gracias :)

Nelson.


La franja horaria es GMT +2. Ahora son las 15:54:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi