Недавно почившая библиотеа RX-LIB была обнаружена
одним из читателей по адресу algv.far.ru файл: rxd6.exe , как вы
уже заметили версия для дельфи6
GLsceneпорадовала
нас добавлением новых эффектов в свою чудо библиотеку, теперь добавленыы
такие вкусности, как Mirror , Cubic MAP, Raytraced Shadows
Всем, кто любит работать с хэндлами окон, и постоянно
ломает на этом зубы, а также любителям защитить свою программу от
взлома рекомендую скачать Inqusoft
sign of mistery.
Не знаю, помогу ли я Вам, но я расскажу как можно изменить цвет
отдельных ячеек GBGrid без необходимости создания нового компонента.
Я только что протестировал этот код....
Я создал форму, поместил на ней компонент TTable и указал ему
на таблицу EMPLOYEE.DB в базе данных DBDEMOS. Затем я разместил
на форме Datasource и DBGrid, "соединил" их и получил
живые данные.
Для демонстрации данной технологии я выбрал поле "номер
служащего" в таблице EMPLOYEE.DB и "покрасил" ячейки
с нечетными числами. То есть, если число нечетное, красим ячейку
в зеленый цвет.
Единственный код расположился в обработчике события OnDrawColumnCell
компонента DBGrid и выглядел он так:
holdColor := DBGrid1.Canvas.Brush.Color; {сохраняем
оригинальный цвет}
if Column.FieldName = 'EmpNo' then {"раскрашиваем" ячейки
только для поля
EmpNo}
if (Column.Field.AsInteger mod 2 <> 0)
then begin
DBGrid1.Canvas.Brush.Color := clGreen;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
DBGrid1.Canvas.Brush.Color := holdColor;
end;
end;
В данном случае мы использовали метод DefaultDrawColumnCell компонента
TCustomDBGrid, являющегося родителем для TDBGrid. Он раскрасил
зеленым цветом нечетные ячейки поля EmpNo
Я добавил дополнительное свойство LinesPerRow. Установка значений
данного свойства соответственно изменяет высоту строки, в зависимости
от текущего шрифта. Текст в ячейках будет переноситься, если значение
LinesPerRow больше чем единица. Все это произведение искусств оказалось
чрезвычайно полезным и удивительно простым, так что я публикую его
здесь в надежде, что оно пригодится кому-нибудь еще. Код простой,
но для его понимания необходимо изучение исходного кода VCL.
Я протестировал данный код и он отлично работал. Небольшая доводка
все-же нужна (обработка blob-полей, обработка ошибок и пр.), но
это не сложно.