Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / DBGrid + color / 8 сообщений из 8, страница 1 из 1
02.12.2003, 11:33
    #32340397
KoSed
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBGrid + color
Я раскрашиваю строки грида по условию...
if (QMain->FieldByName("f_company")->Value == 1)
{
GridMain->Canvas->Font->Color=clBlue;
GridMain->Canvas->FillRect(Rect);
if (Column->Alignment==taRightJustify)
{
GridMain->Canvas->TextOut(Rect.Right-2-GridMain->Canvas->TextWidth(Column->Field->Text),
Rect.Top+2,Column->Field->Text);
}
else
{
GridMain->Canvas->TextOut(Rect.Left+2,Rect.Top+2,Column->Field->Text);
}
во всех остальных строках (цвет фонта чёрный) при наезде курсора
цвет фонта меняется на белый, а при наезде на раскрашенные строки ничего не происходит, т.е. получается синий фонт на синем фоне.
Так как бы мне при наезде на раскрашенную строку менять цвет фонта на белый?
...
Рейтинг: 0 / 0
02.12.2003, 14:40
    #32340820
LAlex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBGrid + color
У грида в событии по которому ты раскрашиваешь есть параметр Highlight, означающее выделена строка или нет. Я бы вообще не раскрашивал выделенные строки. Тогда это само получится. Тебе это надо?
...
Рейтинг: 0 / 0
02.12.2003, 19:10
    #32341240
Случайный прохожий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBGrid + color
Код: plaintext
1.
2.
3.
4.
if (State.Contains(gdFocused)) {
     GridMain->Canvas->Font->Color=clWhite;
} else {
    GridMain->Canvas->Font->Color=clBlue; 
} // else
...
Рейтинг: 0 / 0
03.12.2003, 09:26
    #32341525
KoSed
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBGrid + color
Случайный прохожий:
Что-то не проходит... условие не србатывает.
...
Рейтинг: 0 / 0
03.12.2003, 11:08
    #32341698
DBGrid + color
У меня DBGrid, событие OnDrawColumnCell. Нормально работает.
Какой у тебя грид и событие?
...
Рейтинг: 0 / 0
03.12.2003, 11:18
    #32341715
KoSed
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBGrid + color
Обыкновенный DBGrid.
Событие: OnDrawColumnCell
но при наезде курсором на запись
if (State.Contains(gdFocused)) false
...
Рейтинг: 0 / 0
03.12.2003, 11:27
    #32341736
KoSed
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DBGrid + color
Ура-а-а-а !!! Заработало! Спасибо большое.
Вот так я заделал:

if (QMain->FieldByName("f_company")->Value == 1)
{
if (State.Contains(gdFocused)) GridMain->Canvas->Font->Color=clWhite;
else GridMain->Canvas->Font->Color=clBlue;
GridMain->Canvas->FillRect(Rect);
if (Column->Alignment==taRightJustify)
{
GridMain->Canvas->TextOut(Rect.Right-2-GridMain->Canvas->TextWidth(Column->Field->Text),
Rect.Top+2,Column->Field->Text);
}
else GridMain->Canvas->TextOut(Rect.Left+2,Rect.Top+2,Column->Field->Text);
}
...
Рейтинг: 0 / 0
03.12.2003, 11:27
    #32341737
DBGrid + color
Тогда я не понял что такое при наезде курсором на запись .
Ячейка в гриде становится текущей?

p.s. попробуй:
if (State.Contains(gdSelected))
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / DBGrid + color / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]