procedure TErrMeForm.ErrListDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
TmpLoop: Integer;
TmpStr: string;
begin
ErrWinkTimes := ErrWinkTimes + 1; //ErrWinkTimes:全局变量;实现闪烁的效果
if ErrWinkTimes > 9 then
ErrWinkTimes := 0;
if ErrWinkTimes < 7 then
for TmpLoop := 1 to ErrList.RowCount do
begin
TmpStr := ErrList.Cells[3,TmpLoop];
if TmpStr = 'Yes' then
begin
if Arow = TmpLoop then
begin
with ErrList do
begin
Canvas.Font.Color := clRed;
Canvas.Font.Size := 9;
//Canvas.Font.Style := Canvas.Font.Style + [fsBold];
Canvas.Textout(Rect.Left + 2,Rect.Top + 2,Cells[Acol,Arow]);
end;
end;
end;
end;
end;
上述代码是想在预定的地方闪烁StringGrid的某一行,测试的结果是除了单元格Cell[3,TmpLoop]闪烁,另外的不完整!
主要问题:如何实现改变某一行的字体颜色呢
如果不加闪烁的话,上面已经是修改一行的字体颜色了.只是加了闪烁后,除了单元格Cell[3,TmpLoop]闪烁,另外的不完整!
如果有时间的话,ls兄弟可以测下,不费时间的!或者加上你说的其他的几个单元格逻辑判断,给你出你的逻辑.我试了是没效果的(或者我的逻辑有问题)!呵呵..