Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перекрываем 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,


Наверх

Титульная страница Поиск, карта сайта Написать письмо