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

StringGrid закраска ячеек

25.03.2014, 00:46. Показов 2152. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здравствуйте!
Я новичок в программировании на с++! Не так давно начал его осваивать. В качестве обучения решил написать прогу в Embarcadero RAD Studio. Цель ее очень проста на первый взгляд. На форму кидаю StringGrid (8X5 ячеек). Создаю массив такого же размера int x[8][5]. В таймере с периодичностью в 500 мс непрерывно заполняю его значениями (rand()%2) принимающие только 0 или 1. А теперь в чем загвоздка... Хочу сделать, чтобы там в цикле таймера, где в массиве x[i][j] есть "0" в StringGrid перекрашивалась соответствующая по номеру [i][j] ячейка в синий цвет. Там где "1" - в красный. Очень много сайтов пересмотрел, но так и не смог понять как решить данную проблему. Остается вся надежда только на знатоков. Помогите пожалуйста!

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
int i,j;
int x[8] [5];
float k;
//---------------------------------------------------------------------------
 
void __fastcall TForm2::FormCreate(TObject *Sender)
{
TGridRect rect;
rect.Top = -1;
rect.Left = -1;
rect.Right = -1;
rect.Bottom = -1;
StringGrid1->Selection = rect;
StringGrid2->Selection = rect;
StringGrid3->Selection = rect;
 }
//---------------------------------------------------------------------------
 
void __fastcall TForm2::Timer1Timer(TObject *Sender)
{
for (int i=0; i <= 4; i++) {
    for (int j = 0; j <= 7; j++) {
        x[i][j]=rand()%2;
        StringGrid1->Cells[j][i]=x[i][j];
        }
    }
}
//---------------------------------------------------------------------------
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.03.2014, 00:46
Ответы с готовыми решениями:

Закраска ячеек в StringGrid
Добрый день, ув. программисты! Вопрос именно по билдеру 6, т.к. в других версиях синтаксис может отличаться. Мне нужно по нажатии кнопки...

Закраска ячеек в StringGrid
вот таким образом я закращиваю ячейки в stringrid //закраска ячеек for(int j=0;j&lt;StringGrid1-&gt;ColCount;j++) { for(int...

Закраска заданного диапазона ячеек StringGrid
Добрый день ребята Мне нужно закрасить область ячеек число которых будут прочитаны из этого цикла -&gt; for (i = 1; i &lt;= n;...

4
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33374 / 21499 / 8235
Регистрация: 22.10.2011
Сообщений: 36,894
Записей в блоге: 11
25.03.2014, 01:04
Лучший ответ Сообщение было отмечено EugeneXXI как решение

Решение

Обработчик OnDrawCell грида:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect,
          TGridDrawState State)
{
    TStringGrid *grid = static_cast<TStringGrid*>(Sender);
 
    if(grid->Cells[ACol][ARow].ToIntDef(0) == 0)
        grid->Canvas->Brush->Color = clBlue;
    else
        grid->Canvas->Brush->Color = clRed;
    grid->Canvas->FillRect(Rect);
    grid->Canvas->Font->Color = clWhite;
    grid->Canvas->TextOut(Rect.Left + 2,Rect.Top + 2, grid->Cells[ACol][ARow]);
}
2
0 / 0 / 0
Регистрация: 24.03.2014
Сообщений: 2
25.03.2014, 01:08  [ТС]
Огромное спасибо!
0
27 / 25 / 5
Регистрация: 22.04.2010
Сообщений: 772
08.02.2017, 14:38
Добрый день!
Подскажите, есть ли способ закраски определенной области ячейки?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33374 / 21499 / 8235
Регистрация: 22.10.2011
Сообщений: 36,894
Записей в блоге: 11
08.02.2017, 15:31
Тем же способом, что описан выше. У тебя есть канва, есть размер ячейки, ты можешь закрасить всю ячейку, можешь закрасить любую ее часть. Хоть вообще одну точку поставить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.02.2017, 15:31
Помогаю со студенческими работами здесь

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

Закраска ячеек по таймеру с условием
Добрый день уважаемые форумчани. В моей программе происходит имитация поднятия и понижения температуры , на скрине вы увидите StringGrid в...

Закраска определеной колонки в StringGrid
Привет форумчане! :senor: нашел на форуме нужный мне код написанный pomkalk-ом все работает! но есть одна проблема: при создании...

StringGrid закраска ячейки и добавление bmp
Здравствуйте уважаемые форумчани , возникла проблема со StringGrid , суть проблемы в том что у меня программа в процессе работы записывает...

Возможность вручную писать данные в ячейки StringGrid и заполнение ячеек StringGrid данными из файла после нажатия кнопки
Здравствуйте! Помогите, пожалуйста. Мне необходимо сделать следующее: реализовать возможность вручную писать данные в ячейки StringGrid...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru