Fórum DBGrid não pinta cor da coluna #345045
24/08/2007
0
Pessoal,
Estou juntando tudo sobre o DBGrid e estou criando o meu proprio (pois na migração do meu sistema do D5 pro 6, 7 ate o 2007 foi uma dor de cabeça só!).
Por enquanto só fiz aquela velha dica de zebrar as linhas. Porém identifiquei que quando mando trocar a cor da coluna ele não está fazendo. Estou tentando ver com pergar o status que minha coluna está sendo pintada mas não consegui.
Segue o código:
Está tudo perfeito só precisava mudar a cor da coluna mas não identifico direito os status.
No click do título da coluna tem:
Obrigado!!!
Estou juntando tudo sobre o DBGrid e estou criando o meu proprio (pois na migração do meu sistema do D5 pro 6, 7 ate o 2007 foi uma dor de cabeça só!).
Por enquanto só fiz aquela velha dica de zebrar as linhas. Porém identifiquei que quando mando trocar a cor da coluna ele não está fazendo. Estou tentando ver com pergar o status que minha coluna está sendo pintada mas não consegui.
Segue o código:
procedure TDBGridEx.DrawColumnCell(const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var Linha: Integer; begin Linha := DataSource.DataSet.RecNo; if gdSelected in State then begin if FSelectedFontBold then Self.Canvas.Font.Style := [fsBold]; Self.Canvas.Brush.Color := FSelectedColor; Self.Canvas.Font.Color := FSelectedForeColor; Self.Canvas.FillRect(Rect); inherited DefaultDrawDataCell(Rect, Column.Field, State); end else if odd(Linha) then begin Self.Canvas.Brush.Color := FOddColor; Self.Canvas.Font.Color := FOddForeColor; Self.Canvas.FillRect(Rect); inherited DefaultDrawDataCell(Rect, Column.Field, State); end else begin Self.Canvas.Brush.Color := FEvenColor; Self.Canvas.Font.Color := FEvenForeColor; Self.Canvas.FillRect(Rect); inherited DefaultDrawDataCell(Rect, Column.Field, State); end; inherited DrawColumnCell(Rect, DataCol, Column, State); end;
Está tudo perfeito só precisava mudar a cor da coluna mas não identifico direito os status.
No click do título da coluna tem:
procedure TDBGridEx.TitleClick(Column: TColumn); var Campo: String; begin inherited; if (DataSource.DataSet as TClientDataSet).IndexFieldNames <> ´´ then Columns[DataSource.DataSet.FieldByName((DataSource.DataSet as TClientDataSet).IndexFieldNames).Index].Title.Color := FixedColor; if not (Column.Field.DataType in [ftBlob, ftMemo]) then if Column.Field.FieldKind = fkData then begin (DataSource.DataSet as TClientDataSet).IndexFieldNames := Column.FieldName; Column.Title.Color := $00FFBB77; Columns[Column.Index].Color := clYellow; end; inherited TitleClick(Column); end;
Obrigado!!!
Romulocpd
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)