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

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

StringGrid [D6, D7, Win2k, WinXP]


AMD ©   (2004-11-28 15:45:00) 

Уважаемые мастера, помогите плиз. По умолчанию в компоненте StringGrid цвет выделения ячеек стоит синий, можно ли его изменить?


jack128   (2004-11-28 22:21:00) [1]

есть, я ступил. просто если перекрывать этот метод, то при DefaultDrawing = True будет двойная отрисовка. Это меня и смутило.


GuAV   (2004-11-28 21:28:00) [2]

2 jack128 ©  

В В5 нету OnDrawCell ?


jack128   (2004-11-28 21:21:00) [3]

Говорю только о D5, в позних версиях может(я надеюсь) ситуация изменилась к лушему.
В принципе можно. Но переписывать предется ОЧЕНЬ(!!!) много. фактически весь метод Paint. см в методе TCustomGrid.Paint в процедуре DrawCells строки

with Canvas do
             begin
               Font := Self.Font;
               if (gdSelected in DrawState) and
                 (not (gdFocused in DrawState) or
                 ([goDrawFocusSelected, goRowSelect] * Options <> [])) then
               begin
                  Brush.Color := clHighlight;// вот вместо этого нужно чтобы было, что нить типа Brush.Color := SelectedColor; Ну и цвет текста тож нужно изменитьт, чтобы был виден фоне..
                 Font.Color := clHighlightText;
               end
               else
                 Brush.Color := Color;
               FillRect(Where);
             end;


Наверх

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