我有以下代码(分配给DrawGrid1.OnDrawCell事件):当Brush.Style为bsFDiagonal时,为什么TDrawGrid.OnDrawCell绘制黑色背景?
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
DrawGrid1.Canvas.Brush.Style:= bsFDiagonal;
DrawGrid1.Canvas.Brush.Color:= clSkyBlue;
DrawGrid1.Canvas.FillRect(Rect);
end;
它总是吸引即使DrawGrid1.Color属性已被设置为clRed黑色背景。我也试图改变笔和字体属性,没有运气。 我在这里错过了什么?
PS:我已经检查这个代码:Diagonal brush style gives me black area。 我没有看到问题和答案(除了注释行之间)有什么区别,并且该代码不适用于我,正如我所提到的,我已尝试更改Pen属性而没有任何结果。 我要的只是红色背景与天蓝色的对角线。
我没有XE *,并且不能自己查看源代码,但在早期的Delphi版本中,在TCanvas.CreateBrush()中有一行,它设置了一个(错误的)背景颜色以解决问题在Windows 95中的错误 - 也许它仍然存在?它弄乱了颜色,但是你会看到黑色,因为它也会混淆alpha值。 – mghie