![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перекрываем TCustomGrid.DrawCell [D6, WinXP]
Бывший студент © (2005-04-16 01:28:00)Создаю компонент с предком TStringGrid. Необходимо изменять стиль ячеек. К примеру меняю цвет и шрифт фокуса и цвет колонок, делаю так:
type
TMyGrid = class(TStringGrid)
.
protected
procedure DrawCell(ACol, ARow: Longint;
ARect: TRect; AState: TGridDrawState); override;
.
implementation
procedure TMyGrid.DrawCell(ACol, ARow: Longint;
ARect: TRect; AState: TGridDrawState);
var Rect: TRect;
const
clPaleGreen = TColor($CCFFCC);
clPaleRed = TColor($CCCCFF);
begin
inherited;
if (gdFocused in AState) then
begin
Canvas.Brush.Color := clBlack;
Canvas.Font.Color := clWhite;
Canvas.Font.Style := [fsBold];
end
else if ACol = 2 then
Canvas.Brush.color := clPaleGreen
else
Canvas.brush.Color := clPaleRed;
if (ACol > 0) and (ARow > 0) then
begin
Canvas.FillRect(ARect);
Canvas.TextOut(Rect.Top, Rect.Left, Cells[ACol, ARow]);
end;
end;
В результате текст всех ячеек попадает в первую колонку, что не так?
Бывший студент (2005-04-16 16:03:00) [1]Спасибо за совет - заработало.
Просто Джо (2005-04-16 14:15:00) [2]Блин. Left, затемTop
Бывший студент (2005-04-16 11:50:00) [3]Спасибо за оценку, но:
если использовать Canvas.TextOut( ARect.Top..), то всё валится вообще в последнюю ячейку нулевой колонки.
MBo (2005-04-16 09:36:00) [4]Ну скажи, какой смысл тебе отвечать, если ты не вникаешь в ответы по поводу прямоугольника
Что это за финт ушами:
Canvas.TextOut( Rect.Top,