С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 2
Регистрация: 27.01.2014
Сообщений: 9

Закрасить строку в TStringGrid

02.07.2014, 02:06. Показов 1582. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Подскажите пожалуйста, как сделать так, чтобы при нажатии на требуемую строку TStringGrid правой кнопкой мыши она окрашивалась в нужный мне цвет?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.07.2014, 02:06
Ответы с готовыми решениями:

Закрасить целую строку с определенным значением
В таблице string grid есть разные значения как по нажатию кнопки закрасить строку например в которой есть значение 111? пробую вот так...

DBgrid закрасить нужную строку
Всем привет, не совладал я с DBgrid-ом, чет не идет. Подскажите кодом:help: К DBgrid подключена таблица в этой таблице есть несколько...

Закрасить цветом выделенную строку в DBGrid
Здравствуйте! Необходимо закрасить выделенную строку в DBGrid, при этом сохранив возможность редактирования (т.е не включать RowSelect). ...

2
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
02.07.2014, 06:26
Закрасить строки в Stringgrid
Закраска определеной колонки в StringGrid
Динамический StringGrid
StringGrid: выделение строки
1
0 / 0 / 2
Регистрация: 27.01.2014
Сообщений: 9
09.07.2014, 17:29  [ТС]
Лучший ответ Сообщение было отмечено UdaganN как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
int  NSelRowPrev=-100;
bool mFRows[MAXLines1];       //массив для хранения признака выбранности строки (выбор по нажатию правой кнопки мыши)
unsigned int  CntSelRows;
 
 
//******************************************************************************
void __fastcall TForm1::ParamMouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
//******************************************************************************
{//
 
if (Button == mbLeft)  return;
 
//по правому щелчку мыши
if (Button == mbRight)
{
  //определяем номер выделенной строки
  int NColCurr=-100;
  int  NRowCurr=-100;
  Param->MouseToCell(X,Y,NColCurr,NRowCurr);
 
  //.......................
  if (NRowCurr<=0) return;
  //.......................
 
  //сохраняем состояние строки, по которой кликнули правой кнопкой мыши
  mFRows[NRowCurr]=!mFRows[NRowCurr];
 
  //если строка была выделена
  if (mFRows[NRowCurr])
  {//if (mFRows[NRowCurr])
 
    //число выделенных строк пересчитываем
    CntSelRows++;
 
    //shift НЕ использовался - запоминаем предыдущее состояние
    if (!Shift.Contains(ssShift))  NSelRowPrev=NRowCurr;
 
    //shift использовался
    else
    {
      if (NSelRowPrev != NRowCurr)
      {
        int iMin,iMax;
        if (NSelRowPrev<NRowCurr)  {iMin = NSelRowPrev+1;iMax = NRowCurr-1;}
        if (NSelRowPrev>NRowCurr)  {iMin = NRowCurr+1;iMax = NSelRowPrev-1;}
        for (int i=iMin;i<=iMax;i++) mFRows[i]=1;
 
        //число выделенных строк пересчитываем
        CntSelRows = CntSelRows + abs(NSelRowPrev - NRowCurr) -1 ;
      }
    }
 
  }//if (mFRows[NRowCurr])
 
  //если выделение со строки было снято
  else CntSelRows--;
 
 
Param->Invalidate();
Param->OnDrawCell;
}
 
 
//по среднему щелчку мыши
if (Button == mbMiddle)  RemoveAll();
 
}//
 
//******************************************************************************
void __fastcall TForm1::ParamDrawCell(TObject *Sender, int ACol, int ARow,
      TRect &Rect, TGridDrawState State)
//******************************************************************************
{//
 
  if (ARow==0) return;
 
  if (mFRows[ARow])
  {
    Param->Canvas->Brush->Color = cl3DLight;
    Param->Canvas->Font->Color  = clBlack;
    Param->Canvas->FillRect(Rect);
    Param->Canvas->TextOut(Rect.Left,Rect.Top,Param->Cells[ACol][ARow]);
  }
 
 
}//
 
//******************************************************************************
void __fastcall TForm1::RemoveAll()
//******************************************************************************
{//
 
for (int i=0;i<MAXLines1;i++)  {mFRows[i]=0;}
Param->Invalidate();
Param->OnDrawCell;
CntSelRows=0;
 
}//
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.07.2014, 17:29
Помогаю со студенческими работами здесь

Закрасить строку DBGrid при нажатии на Button
В общем есть две кнопки (&quot;Пометить&quot;, &quot;Снять пометку&quot;), и есть DBGrid. Требуется при нажатии на кнопку &quot;Пометить&quot; закрасить...

Добавить пустую строку в конец TStringGrid при определенном условии
какое событие в TStringGrid отвечает за перевод фокуса с одной ячейки на другую? или возможно я вообще не туда копаю, короче надо чтобы как...

Закрасить строку
Не могу понять как сделать чтобы при наведении, также закрашивались столбцы, как и строки. http://jsfiddle.net/fsC4Z/ &lt;!doctype...

Закрасить строку
Нужно с помощью макроса закрасить строку, если сумма ее элементов ровна заданному значению. Вот только я не знаю, как сделать так, чтобы...

Закрасить строку в datagridview
Пожалуйста подскажите как решить задачу. Есть datagridview со строками, анализирую его и в зависимости от значений полей (условие) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru