FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Pintar un dbGRid
Hola:
quisiera saber como hacer para pintar una celda en especial de un dbgrid segun el color que el usr elige del control de colores en este momento estoy usando el ste codigo pero no pasa nada procedure TFPuma0058.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState); begin inherited; DBItems.Canvas.Brush.color := clred; DBItems.Canvas.FillRect(rect); DBItems.defaultdrawdatacell(Rect,Field,State); end; eb este caso no uso el componennte de color lo hice asi para probar y no me pinta ninguna celda de rojo. quisiera saber si tengo que poner alguna propiedad del TdbGRid o algo asi. Gracias!!!!!!!!!!!!!!!!!! |
#2
|
||||
|
||||
Mira este ejemplo que no tengo tiempo para más, a ver si te sirve:
Código:
procedure TfrFactAlbaranes.RejaDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin If Column.FieldName='Marcado' then Begin Reja.Canvas.Brush.Color :=ClAqua; Reja.Canvas.Font.Color:=ClRed; Reja.Canvas.Font.Style:=([fsBold]); Reja.DefaultDrawColumnCell(Rect,Datacol,Column,State); end;
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
|||
|
|||
Si te agradesco mucho, el problema es que yo quiero pintar una celda y no toda la columna ademas quiero pintar la celda con el color que tengo almacenado como un integer en la misma celda
Muchas gracias!!!!!!!!! |
#4
|
|||
|
|||
Para que pinte lo que tu quieras, tienes la propiedad DefaultDrawing, que debe estar a false, ya que si esta a true, pinta con el modo por defecto del componente y no te hace ni caso.
Saludos, Xavierator. |
#5
|
||||
|
||||
Cita:
Para evitar esta posibilidad, y si tenes el evento asociado a varias rejillas, creo que podes valerte del Sender, no? Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#6
|
|||
|
|||
ami me funciono de la siguiente forma
utilice el codigo expuesto anteriormente pero lo cambie a los eventos del grid
getcolorcelda getcolortexto y reviso que la columna de la celda sea la que quiero cambiar el color utilizando acol para la posicion de la columna Código:
procedure Tfrmvalidar.grdpreprogGetColorCelda(Sender: TObject; Column: TColumn; ARow, ACol: Integer; AState: TGridDrawState; ABrush: TBrush; AFont: TFont); begin if preprog.FieldByName('error').AsInteger = 1 then begin if grdpreprog.Fields[acol].DisplayName = 'COMPONENTE' then begin grdpreprog.Canvas.Brush.Color :=claqua; end; end; end; procedure Tfrmvalidar.grdpreprogGetTextoCelda(Sender: TObject; Column: TColumn; ARow, ACol: Integer; var Texto: String); begin if preprog.FieldByName('error').AsInteger = 1 then begin if grdpreprog.Fields[acol].DisplayName = 'COMPONENTE' then begin grdpreprog.Canvas.Font.Color := clRed; grdpreprog.Canvas.Font.Style := [fsBold]; end; end; end; |
|
|
|