Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
DBGridEh и отрисовка "подсвеченных" строк
|
|||
|---|---|---|---|
|
#18+
Проблемка: в DBGridEh на событии OnGetCellParams хочу для некоторых столбцов в подсвеченной (highlighted) строке установить цвет шрифта = цвету фона. У RxDBGrid'а в этом событии было свойство Highlight, а у DBGridEh - такого свойства нет, есть State. Проверка значения gdSelected, gdFocused - не дают нужного эффекта - в подсвеченной строке у колонок шрифт всё равно белый. Код: plaintext 1. 2. 3. Как добиться присваивания нужного цвета для определенных колонок в подсвеченной строке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2004, 16:44 |
|
||
|
DBGridEh и отрисовка "подсвеченных" строк
|
|||
|---|---|---|---|
|
#18+
1. Ну, раз TDBGridEh - это, как ни крути, DB - aware - компонент, то зачения цвета придется хранить в отображаемом наборе данных... Создайте для этого поле типа Integer, и с именем, например, "FColor". Наверное, правильно будет, ели оно не будет видимым. 2. Предположим, имя отображаемого поля, цвет которого мы хотим менять - "GR": ... with dbGrid.DataSource.Dataset do // dbGrid - это Ваш DBGridEh begin DisableControls; try for I := 0 to dbGrid.SelectedRows.Count - 1 do begin Bookmark := dbGrid.SelectedRows.Items ; Edit; FieldByName('FColor').AsInteger := clRed; // Красный цет post; end; finally EnableControls; end; end; dbGrid.Selection.UpdateState; ... 3. Добавим обработчик события OnGetCellParams для dbGridEh: ... begin inherited; if FieldChanging then exit ; // От рекурсии - глобальная переменная FieldChanging := true; try if Sender.FieldName = 'GR' then if dtGrid.FieldByName('FCOLOR').AsInteger <> 0 then Background := dtGrid.FieldByName('FCOLOR').AsInteger; finally FieldChanging := false; end end; // Это все! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 12:52 |
|
||
|
DBGridEh и отрисовка "подсвеченных" строк
|
|||
|---|---|---|---|
|
#18+
Прошу прощения: управляющие коды вкрались. Правильно так: with dbGrid.DataSource.Dataset do // dbGrid - это Ваш DBGridEh begin DisableControls; try for I := 0 to dbGrid.SelectedRows.Count - 1 do begin Bookmark := dbGrid.SelectedRows.Items [ I ] ; // Edit; FieldByName('FColor').AsInteger := clRed; // Красный цет post; end; finally EnableControls; end; end; dbGrid.Selection.UpdateState; ... 3. Добавим обработчик события OnGetCellParams для dbGridEh: ... begin inherited; if FieldChanging then exit ; // От рекурсии - глобальная переменная FieldChanging := true; try if Sender.FieldName = 'GR' then if dtGrid.FieldByName('FCOLOR').AsInteger <> 0 then Background := dtGrid.FieldByName('FCOLOR').AsInteger; finally FieldChanging := false; end end; // Это все! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2004, 12:57 |
|
||
|
|

start [/forum/search_topic.php?author=michal&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 641ms |
| total: | 800ms |

| 0 / 0 |
