stringgrid 设置某一行的文字的颜色(100分)

  • 主题发起人 主题发起人 brucedai
  • 开始时间 开始时间
B

brucedai

Unregistered / Unconfirmed
GUEST, unregistred user!
如何设置在 stringgrid中 设置某一行的文字的颜色
 
如下:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var Area:TRect;
begin
if ARow = 1 then
with StringGrid1,StringGrid1.Canvas do begin
FillRect(Rect);
Font.Color := clRed;
Area:= Rect;
InflateRect(Area, -2, -2);
DrawText(Handle, PChar(Cells[ACol, ARow]),Length(Cells[ACol, ARow]), Area, DT_CENTER);
end;
end;
 
就是这样。
别忘了设置 DefaultDrawing 为 false
 
这是一个事件,我想做的是 stringgrid 中已经有很多行的数据了,现在需要把某一行的
数据的字体改成别的颜色
 
就要在这个事件里面处理
而不是有什么属性可以设置
这是listview/listbox/stringgrid/dbgrid等控件通用的处理方法
 
就是这么改的,没有专门的属性来控制某一行的颜色。
 
也许是因为 brucedai 对事件理解的不够深,该事件在StringGrid建立(Draw cell)是就触发,
当光标在控件内移动时也在不定的触发,若想实现什么功能,就用个if 判断符合你的要求时就实现相应的代码。如通过判断state 等。
其实事件跟消息都是一回事,只是消息处理的范围比较广,而事件只针对特殊情况。
 
谢谢各位
 
后退
顶部