1、根据条件更改某一单元格的颜色
- procedure TMainFrm.First_DGDrawColumnCell(Sender: TObject;
- const Rect: TRect; DataCol: Integer; Column: TColumn;
- State: TGridDrawState);
- begin
- if DM.FirstListStatus.AsString='生产' then begin
- First_DG.Canvas.Font.Color:=clGreen
- end
- else begin
- First_DG.Canvas.Font.Color:=clRed;
- end;
- if DataCol = 4 then
- First_DG.DefaultDrawColumnCell(Rect,DataCol,Column,State);
- end;
2、多种改变方式
- <span style="color:#000000;">procedure TMainForm.DBGrid1DrawColumnCell(Sender: TObject;
- const Rect: TRect; DataCol: Integer; Column: TColumn;State: TGridDrawState);
- var i :integer;
- begin
- if gdSelected in State then Exit;
- for i :=0 to (Sender as TDBGrid).Columns.Count-1 do
- begin
- (Sender as TDBGrid).Columns[i].Title.Font.Name :='宋体';
- (Sender as TDBGrid).Columns[i].Title.Font.Size :=9;
- (Sender as TDBGrid).Columns[i].Title.Font.Color :=$000000ff;
- (Sender as TDBGrid).Columns[i].Title.Color :=$0000ff00;
- end;
- if Query1.RecNo mod 2 = 0 then
- (Sender as TDBGrid).Canvas.Brush.Color := clInfoBk
- else
- (Sender as TDBGrid).Canvas.Brush.Color := RGB(191, 255, 223);
- DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
- with (Sender as TDBGrid).Canvas do
- begin
- Pen.Color := $00ff0000;
- MoveTo(Rect.Left, Rect.Bottom);
- LineTo(Rect.Right, Rect.Bottom);
- Pen.Color := $0000ff00;
- MoveTo(Rect.Right, Rect.Top);
- LineTo(Rect.Right, Rect.Bottom);
- end;
- end;</span>
3、纵向斑马线效果:实现网格的奇数列和偶数列分别以不同的颜色显示以区别相邻的数据列。
- Case DataCol Mod 2 = 0 of
- True: DbGrid1.Canvas.Brush.Color:= clBlue; file:
- False: DbGrid1.Canvas.Brush.Color:= clAqua; file:
- End;
- DbGrid1.Canvas.Pen.Mode:=pmMask;
- DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
4、纵向斑马线,同时以红色突出显示当前单元格效果:以突出显示当前选中的字段。
- Case DataCol Mod 2 = 0 of
- True: DbGrid1.Canvas.Brush.Color:= clBlue; file:
- False: DbGrid1.Canvas.Brush.Color:= clAqua; file:
- End;
- If ((State = [gdSelected]) or (State=[gdSelectedgdFocused])) then
- If Not DbGrid1.SelectedRows.CurrentRowSelected then
- DbGrid1.Canvas.Brush.Color:=clRed; file:
- DbGrid1.Canvas.Pen.Mode:=pmMask;
- DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
5、在数据网格中以红色突出显示当前选中的行。
- 设置DbGrid控件的Options属性中的dgRowSelect属性为真,Color属性为clAqua(背景色)
- 在DbGrid的DrawColumnCell事件中编写如下代码:
-
- if ((State = [gdSelected]) or (State=[gdSelected gdFocused])) then
- DbGrid1.Canvas.Brush.color:=clRed; file:
- DbGrid1.Canvas.pen.mode:=pmmask;
- DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
6、行突显的斑马线效果:既突出当前行,又区分不同的列(字段)。
- if ((State = [gdSelected]) or (State=[gdSelectedgdFocused])) then
- begin
- Case DataCol Mod 2 = 0 of
- True : DbGrid1.Canvas.Brush.color:=clRed; file:
- False: DbGrid1.Canvas.Brush.color:=clblue; file:
- end;
- DbGrid1.Canvas.pen.mode:=pmmask;
- DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
7、横向斑马线, 同时以红色突显当前行效果。
- Case Table1.RecNo mod 2 = 0 of file:
- True : DbGrid1.Canvas.Brush.color:=clAqua; file:
- False: DbGrid1.Canvas.Brush.color:=clblue; file:
- end;
- if ((State = [gdSelected]) or (State=[gdSelectedgdFocused])) then file:
- DbGrid1.Canvas.Brush.color:=clRed;
- DbGrid1.Canvas.pen.mode:=pmMask;
- DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
8、双向斑马线效果:即行间用不同色区分,同时,选中行以纵向斑马线效果区分不同的列。
- Case Table1.RecNo mod 2 = 0 of file:
- True : DbGrid1.Canvas.Brush.color:=clAqua; file:
- False: DbGrid1.Canvas.Brush.color:= clblue; file:
- end;
- If ((State = [gdSelected]) or (State=[gdSelectedgdFocused])) then
- Case DataCol mod 2 = 0 of
- True : DbGrid1.Canvas.Brush.color:=clRed; file:
- False: DbGrid1.Canvas.Brush.color:= clGreen; file:
- end;
- DbGrid1.Canvas.pen.mode:=pmMask;
- DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
一、根据条件更改某航
procedure Tfrm_TicketGet.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if (ADOQuery1.FieldByName('kind_name').asstring = '合计' )or( ADOQuery1.FieldByName('kind_name').asstring = '总合计') then begin DBGrid1.Canvas.Font.Color:=clred; dbgrid1.Canvas.Brush.color:=clyellow; end ;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state); end;
|
请发表评论