canvas教程

delphi编程语言程序开发技术文章(2)

字号+ 作者:H5之家 来源:H5之家 2017-07-05 17:01 我要评论( )

[delphi] 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:=pmMas


[delphi]
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); 

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、纵向斑马线,同时以红色突出显示当前单元格效果:以突出显示当前选中的字段。

[delphi]
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); 

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、在数据网格中以红色突出显示当前选中的行。


[delphi]
设置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); 

设置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、行突显的斑马线效果:既突出当前行,又区分不同的列(字段)。


[delphi]
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); 

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、横向斑马线, 同时以红色突显当前行效果。


[delphi]
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); 

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、双向斑马线效果:即行间用不同色区分,同时,选中行以纵向斑马线效果区分不同的列。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • delphi canvas 画点

    delphi canvas 画点

    2017-06-22 17:02

  • Delphi 之 工具栏组件(TToolBar)

    Delphi 之 工具栏组件(TToolBar)

    2017-06-04 09:04

  • 关于html2canvas这个插件的使用问题,求助

    关于html2canvas这个插件的使用问题,求助

    2017-05-31 13:01

  • 使用Canvas画出任意的形状(就是拿鼠标在上面乱画), 撤销上一次

    使用Canvas画出任意的形状(就是拿鼠标在上面乱画), 撤销上一次

    2017-05-26 17:00

网友点评