如何改变DBGrid1和StringGrid1中单独一行的背景色?
解决方案 »
- 求助!delphi xe2安装问题
- Delphi调用VC做的Dll的函数不返回,程序就死了, 我打了log发现Dll是返回了的,为什么Delphi会不往下执行了呢?谢谢!
- 如何屏蔽键盘的Power键
- 已知点的x轴的值,如何获取tchart中一个TFastLineSeries该点的x坐标?在线等。。。。
- FastReprot插入分页符怎么做??
- 高难度 word文档转换为tif 如何用,解决了给500分决不失言
- 如何利用Fastreport將報表導出到EXCEL文件?
- 不知道这是什么意思?请高手做答!
- 谁有rbuilder for d6,最好不是测试版的,要正式版的,做报表用它很方便,那里可以下载,无限感激。
- 请问怎样才能擦掉一个圆?多谢!!!
- 有关DELPHI应用程序“换肤”和“INI文件的加密解密”的问题,大家进来看看。。。。。。
- 请问dbgrid中的问题?(大家都来瞧一瞧!!!!!!!!!!!!!)
void __fastcall TfrmMain::lvOperatorsCustomDrawItem(
TCustomListView *Sender, TListItem *Item, TCustomDrawState State,
bool &DefaultDraw)
{
if(Item->Index % 2)
lvOperators->Canvas->Brush->Color=(TColor)RGB(183,203,249);}
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (ARow mod 2)=1 then
StringGrid1.Canvas.Brush.Color := clRed
else StringGrid1.Canvas.Brush.Color := clWhite;
StringGrid1.Canvas.Rectangle(Rect);
end;ListView:
ListView1.OwnerDraw := true;procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if (Item.Index mod 2)=1 then
ListView1.Canvas.Brush.Color:= clRed
else ListView1.Canvas.Brush.Color:= clBlue;
end;
dbgrid1.canvas.font.color:=颜色1;//设置记录的字体颜色
if gdselected in state then //如果该记录被选中
setbkcolor(dbgrid1.canvas.handle,颜色2)
//将该记录加亮显示
else
setbkcolor(dbgrid1.canvas.handle,颜色3);
//设dbgrid的背景色
dbgrid1.canvas.textrect(rect,0,0,field.asstring);
dbgrid1.canvas.textout(rect,left,rect,top,field.asstring);
//设置颜色区域
Item: TListItem; Rect: TRect; State: TOwnerDrawState);
begin
if item.Index mod 2 = 1 then
begin
listview1.Canvas.brush.Color := tcolor(rgb(255,111,0));;
end
else
begin
listview1.canvas.brush.Color := clblue;
end;
listview1.Canvas.Rectangle( rect);
end;
在Delphi中随意控制DBGrid每一行的颜色
有个问题是在Delphi中使用DBGrid时,如何让DBGrid中每一行颜色按照用户自己的意愿控制。
最初看到这个问题时,我们以为非常非常简单,所以马上动手准备解决它。
结果却发现不是那么回事,传统方法根本不能发挥作用。在电脑面前一直坐到凌晨4点,
不断地调试,幸运地是凭借平时积累的一点编程经验,终于找到了开门的匙钥。
现将它充公,供大家享用。1、 数据表的建立2、程序设置;
procedure Tinfo.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if query1.FieldByName(’all’).asstring>40 then
begin
dbgrid1.Canvas.Font.Color:=clred;
dbgrid1.Canvas.Brush.color:=clyellow;
end
else
begin
dbgrid1.Canvas.Font.Color:=clblue;
dbgrid1.Canvas.Brush.color:=clyellow;
end;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
end;
****************************
*Second
if (ADOTable1.RecNo mod 5)=0 then
dbGrid1.Canvas.Brush.Color:=clred
else
dbGrid1.canvas.Brush.Color:=clblue;
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);