Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problema en Color de fila en DBGrid segun campo (https://www.clubdelphi.com/foros/showthread.php?t=39805)

amadis 30-01-2007 15:56:32

Problema en Color de fila en DBGrid segun campo
 
Que tal Gente! :eek:

He logrado poner las filas de un grid en verde segun si un campo boolean es true o false, pero tengo problemas con la linea de seleccion.
Se muestra seleccionada sola la celda actual y no la linea a pesar de que esta activado RowSelect.

Trabaje dentro del OnDrawColumnCell y el codigo es el siguiente, que he armado comanto partes de otros post.

Y tambien pasa que si hago click con el mouse las celdas clikeadas van quedando seleccionadas sin motivo, como si tuviese el MultiSelect True, cosa que no es así.

El grid solo visualiza 3 columnas (Nº couta, fecha, e importa) y el otro campo es paga (boolean)..

Desde ya Gracias!

Código Delphi [-]

 with (Sender as TDBGrid) do
    begin
      if DataSource.DataSet.FieldByName('paga').Value  = 'true'
       then
            begin
             DBGrid3.Canvas.Brush.Color:=$438811;
             DBGrid3.Canvas.FillRect(Rect);
             DefaultDrawColumnCell(Rect, DataCol, Column, State);
            end;
   end;

basti 30-01-2007 17:00:34

Hola, el DefaultDrawColumnCell tienes que hacerlo también para el resto de las columnas, en caso de que quieras que se vean todos los datos. Supongo que el error viene de ahí.
Código Delphi [-]
 with (Sender as TDBGrid) do
    begin
      if DataSource.DataSet.FieldByName('paga').Value  = 'true'
       then
            begin
             DBGrid3.Canvas.Brush.Color:=$438811;
             DBGrid3.Canvas.FillRect(Rect);
            end;
      DefaultDrawColumnCell(Rect, DataCol, Column, State);
   end;

Neftali [Germán.Estévez] 30-01-2007 17:30:53

Prueba a utilizar el parámetro State del evento para no pintar (o mejor dicho pintar de la forma estandard) cuando la línea es la seleccionada.
Revisa los valores en la ayuda y haz un par de pruebas...

amadis 31-01-2007 16:45:26

¿?
 
Probe cambiar el codigo a como dice Basti y sigue igual. :(

Neftali Busco en la ayuda del DBGrid y tengo un apartado Events pero me explica en 1 linea cuando ocurre cada evento.

PROGRAMACION I-LOGICA

Luego de volver a husmear la ayuda decidi probar de cero, coloqué otro DBGrid y le apliqué el mismo codigo Original, puse los parametros (Options que necesitaba como en el anterior) y por sorpresa funcionó como tendria que funcionar.

¿que sería? no se porque, controle todos los parametros de ambos DBGrid y nada raro

Desde ya les agradezco su tiempo


La franja horaria es GMT +2. Ahora son las 01:15:53.

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