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

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

25.03.2014, 00:46. Показов 2175. Ответов 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
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,908
Записей в блоге: 12
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
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,908
Записей в блоге: 12
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
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru