Inicio > Difícil, Ejemplos > Dibujar porcentaje en una celda de un Grid

Dibujar porcentaje en una celda de un Grid

Share Button

En este ejemplo se muestra cómo dibujar manualmente una barra de porcentaje en una celda de un DBGrid. Presuponemos que en la celda en la que vamos a dibujar la barra se está mostrando un valor entre 0 y 100 que pertenece a un porcentaje. Este ejemplo muestra cómo se hace para un componente TDBGrid estándard; No es muy difícil adaptarlo para utilizarlo en un TStringGrid o similar.

Dibujar porcentaje en Grid

Download Descargar ejemplo

Share Button
Categories: Difícil, Ejemplos Tags: , ,
  1. Juanlu
    martes, 30 de junio de 2009 a las 09:57 | #1

    Me da error al intentar compilar. En la línea:

    StrValue := STR_EMPTY;

    ¿A que puede ser debido?

  2. Neftalí
    martes, 30 de junio de 2009 a las 11:51 | #2

    @Juanlu
    Hola Juanlu.
    Tal vez se me paso, STR_EMPTY es una constante que suelo utilizar para la cadena vacía. O defines la constante:

    const
    STR_EMPTY = ”;

    O directamente cambias esa referencia por: ”

    Un saludo.

  3. Neftalí
    martes, 30 de junio de 2009 a las 11:56 | #3

    @Juanlu
    Hola.
    Acabo de ver que la constante y algunas más, están definidas en la unit UDrawcell. ¿No las habrás borrado sin querer?

    Un saludo.

  4. Ali Reyes
    miércoles, 13 de junio de 2018 a las 19:53 | #4

    Amigo buenas, gracias por el ejemplo, aqui esoy varios años despues de publicado, tengo una consulta que me llena un DBGRID, copio el ejemplo completo pero aun asi no me funciona.

    if not (Column.FieldName = ‘avancetarea’) then begin
    Exit;

    en esta linea coloco el nombre de la columna que quiero convertir en la barra de progreso pero no me lo toma, cuando depuro y veo que “Fieldname” me esta tomando, me toma el primero de mi DBGRID “consectarea” podrias ayudarme por favor =(

  5. jueves, 14 de junio de 2018 a las 11:02 | #5

    @Ali Reyes

    Hola Ali.
    Es normal que si depuras, primero te llegue la primera columna del DGBRID a ese punto. Te llegarás TODAS las columnas.
    Ese código (si te fijas tiene un NOT delante), lo que hace es evitar que te pinte la barra de progreso en el resto de columnas que no son la que quieres pintar.

    De ahí que si no es la columna que quieres, ejecute un Exit.

    Si colocas un punto de ruptura en la línea siguiente al Exit, debería pararse cuando llegue la columna que deseas.

    Un saludo.

  1. Sin trackbacks aún.
What is 13 + 16 ?
Please leave these two fields as-is:
IMPORTANTE! Para continuar, debes contestar la pregunta anterior (para evitar SPAM) :-)