Fórum Cores no Grid #343357
18/07/2007
0
O grid tem uma cor ´AZUL´ que identifica qual linha esta selecionada, alem dessa cor o texto fica ´BRANCO´.
Qual seria essa cor ´AZUL´ ? Nao consigo chegar nesse tom de cor.
Qual propriedade faz com que o texto fica ´BRANCO´ ?
Preciso disso porque quando a propriedade ROWSELECT esta False, eu gostaria de deixar toda a linha da mesma cor, para fazer isso altero a propriedade ActiveRowColor.
Muito Obrigado
Felipeiw
Curtir tópico
+ 0Posts
19/07/2007
Jáder Medeiros
if DBGrid1.DataSource.DataSet.State in [dsEdit, dsInsert, dsBrowse] then //Cor da linha selecionada if Rect.Top = TStringGrid(DBGrid1).CellRect(0,TStringGrid(DBGrid1).Row).Top then begin DBGrid1.Canvas.FillRect(Rect); DBGrid1.Canvas.Brush.Color := TColor($F0CAA6); DBGrid1.DefaultDrawDataCell(Rect,Column.Field,State) end; if gdSelected in State then begin //Cor da célula selecionada DBGrid1.Canvas.Brush.Color := TColor($808000); DBGrid1.Canvas.FillRect(Rect); DBGrid1.DefaultDrawDataCell(Rect,Column.Field,State) end
Gostei + 0
23/07/2007
Objetivacreator
Para saber a cor que você quer chegar é simples se vc tiver a cor desejada sendo mostrada na tela.
Existem diversos aplicativos gratuítos que capturam a cor selecionada, é como um pincel que você leva até a cor desejada e ele dá a cor em hexa, juto o que o delphi precisa.
com a ajuda do amigo que disponibilizou o código, fica mais fácil ainda
Espero ter ajudado.
Valnei.
Gostei + 0
23/07/2007
Jáder Medeiros
unit Unit1;
interface
uses
Forms, ExtCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure OnTimer(Sender: TObject);
end;
var
Form1: TForm1;
Timer: TTimer;
implementation
uses
Graphics, Windows, Controls, SysUtils;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer := TTimer.Create(Self);
Timer.Interval := 20;
Timer.OnTimer := OnTimer;
Timer.Enabled := True;
end;
procedure TForm1.OnTimer(Sender: TObject);
var
Tela: TCanvas;
Cor: TColor;
begin
Tela := TCanvas.Create;
try
Tela.Handle := GetWindowDC(GetDesktopWindow);
Cor := ColorToRGB(GetPixel(Tela.Handle,Mouse.CursorPos.X,Mouse.CursorPos.Y));
Caption := Format(´TColor: ¬s Red: ¬d Green: ¬d Blue: ¬d´,[ColorToString(Cor),GetRValue(Cor),GetGValue(Cor),GetBValue(Cor)])
finally
Tela.Free
end
end;
end.Gostei + 0
24/07/2007
Virus69
procedure TFrmCheques.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
If dm.IBChequesDTBAIXA.text <> ´´ then // coloque aqui sua condição
begin
DBGrid1.Canvas.Brush.Color:= $00E1FFE1;
DBGrid1.Canvas.Font.Color:= clWindowText;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end
else
begin
DBGrid1.Canvas.Brush.Color:= $00AAAAFF;
DBGrid1.Canvas.Font.Color:= clWindowText;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
Gostei + 0
24/07/2007
Jáder Medeiros
Seu exemplo não colore a linha selecionada. Colore as linhas baseadas em um critério específico de valores dos campos.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)