powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / DBGrid + color
8 сообщений из 8, страница 1 из 1
DBGrid + color
    #32340397
KoSed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я раскрашиваю строки грида по условию...
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
DBGrid + color
    #32340820
LAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У грида в событии по которому ты раскрашиваешь есть параметр Highlight, означающее выделена строка или нет. Я бы вообще не раскрашивал выделенные строки. Тогда это само получится. Тебе это надо?
...
Рейтинг: 0 / 0
DBGrid + color
    #32341240
Случайный прохожий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
if (State.Contains(gdFocused)) {
     GridMain->Canvas->Font->Color=clWhite;
} else {
    GridMain->Canvas->Font->Color=clBlue; 
} // else
...
Рейтинг: 0 / 0
DBGrid + color
    #32341525
KoSed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Случайный прохожий:
Что-то не проходит... условие не србатывает.
...
Рейтинг: 0 / 0
DBGrid + color
    #32341698
У меня DBGrid, событие OnDrawColumnCell. Нормально работает.
Какой у тебя грид и событие?
...
Рейтинг: 0 / 0
DBGrid + color
    #32341715
KoSed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обыкновенный DBGrid.
Событие: OnDrawColumnCell
но при наезде курсором на запись
if (State.Contains(gdFocused)) false
...
Рейтинг: 0 / 0
DBGrid + color
    #32341736
KoSed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ура-а-а-а !!! Заработало! Спасибо большое.
Вот так я заделал:

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
DBGrid + color
    #32341737
Тогда я не понял что такое при наезде курсором на запись .
Ячейка в гриде становится текущей?

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


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