У меня есть следующий код (присвоенный DrawGrid1.OnDrawCell событию):Почему TDrawGrid.OnDrawCell рисует черный фон, когда Brush.Style является bsFDiagonal?
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. Я также попытался изменить свойства Pen и Font, не повезло. Что я здесь пропустил?
пс: Я проверил этот код: Diagonal brush style gives me black area. Я не понял, в чем разница между вопросом и ответом (кроме прокомментированной строки), и этот код не работает для меня, как я уже упоминал, я уже пытался изменить свойства пера без каких-либо результатов. Все, что я хочу, это красный фон с голубыми диагональными линиями.
У меня нет XE * и я не могу взглянуть на источники самостоятельно, но в более ранних версиях Delphi в 'TCanvas.CreateBrush()' была строка, которая устанавливает (неправильный) цвет фона для работы ошибка в Windows 95 - может быть, она все еще там? Он испортил цвет, но вы видите черный, потому что он также испортил альфа-значение. – mghie