Odysseos
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору zakov Подскажите, как в TDBGridEh изменить цвет фона выделения??? Повторюсь (слегка видоизменив под ситуацию): 1. объявляем свой класс-наследник от TDBGridEhStyle (например, TMyDBGridEhStyle); 2. наследуем его метод HighlightDataCellColor; 3. в нем вызываем родительский метод, а потом проверяем состояние ячейки (также можно проверить и свойство InMultiSelect - если нужно как-то особо подсвечивать множественное выделение, а не только текщую строку) и в зависимости от этого выставляем цвет по желанию (естественно, поменять можно не только цвет - что угодно), и: Код: begin Result := inherited HighlightDataCellColor(AGrid, ACol, ARow, DataCol, DataRow, Value, AState, InMultiSelect, AColor, AFont ); if Result and ([gdFocused] * AState = [gdFocused]) then AColor := <желаемый цвет строки>; end; | 4. создаём экземляр этого класса в модуле главной формы: Код: var MyStyle: TDBGridEhStyle; ... initialization begin MyStyle := TMyDBGridEhStyle.Create(); end; finalization begin FreeAndNil(MyStyle); end; end. | 5. для нужных сеток в FormCreate соответствующих форм задаём созданный экземпляр этого класса как стиль сетки: Код: ...FormCreate; begin DBGridEh1.Style := MyStyle; end; | 5а. либо задаём созданный экземпляр этого класса как "стиль по умолчанию" для всех сеток (в том же модуле, что и в п. 4, добавляем строчку в секцию initialization): Код: initialization begin MyStyle := TMyDBGridEhStyle.Create(); SetDBGridEhDefaultStyle(MyStyle); end; |
| Всего записей: 186 | Зарегистр. 02-01-2006 | Отправлено: 00:20 03-04-2010 | Исправлено: Odysseos, 00:23 03-04-2010 |
|