Vohleb |
Отправлено: 07.04.2004, 09:07 |
|
Не зарегистрирован
|
Я понял что надо написать обработчик события OnGetCellParams, но не получается создать условие "ЕСЛИ СТРОКА ТЕКУЩАЯ" |
|
** Павел |
Отправлено: 07.04.2004, 11:25 |
|
Не зарегистрирован
|
Если именно текущую — можно обойтись и просто задав
в RxDBGrid1->Options->dgRowSelect = true;
текущая строка всегда будет синим цветом.
|
|
Vohleb |
Отправлено: 07.04.2004, 11:33 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
Павел
Не годится, нужно при этом иметь возможность редактировать ячейку.
Отредактировано Vohleb — 07/04/2004, 12:36 |
|
olegenty |
Отправлено: 07.04.2004, 12:24 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Событие
OnDrawColumnCell обработать надо.
в нём проверить по ключу, является ли текущее значение поля тем, в котором находится курсор, и если да, прорисовать с другим цветом фона:
CODE |
void __fastcall Tfm::RxDBGrid1DrawColumnCell(
TObject *Sender, const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
if (условие)
{
RxDBGrid1->Canvas->Brush->Color = твой_цвет;
}
}
|
как ты будешь определять, что прорисовывается именно нужная строка — думай сам...
|
|
olegenty |
Отправлено: 07.04.2004, 12:27 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
забыл, в конце обработки события безусловно должно быть следующее:
CODE |
RxDBGrid1->DefaultDrawColumnCell(Rect, DataCol, Column, State);
|
|
|
Vohleb |
Отправлено: 07.04.2004, 13:41 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 4
|
Вопрос в том как написать проверку "если строка текущая, то ..." |
|
olegenty |
Отправлено: 07.04.2004, 15:35 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Например через ActiveRecord твоего наследника TDataSet
|
|