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

Закрасить несколько ячеек StringGrid при клике мышью

01.04.2017, 12:46. Показов 2050. Ответов 15

Студворк — интернет-сервис помощи студентам
Здравствуйте! Знаю, что по данной теме есть куча разделов и тем, но я так и не нашёл в них ответ на мой вопрос!
Делая курсовую, я внезапно столкнулся с необходимостью закрашивать клетки по принципу: одно нажатие на клетку ЛКМ и она закрашивается в чёрный цвет! С этим по сути я разобрался, но вот дальше возник вопрос: как сделать так, что бы при нажатии на следующую клетку, закрашивание предыдущей не отменялось? То есть пользователь сможет последовательно закрасить те клетки, которые он захочет, лишь тыкая по ним левой кнопкой мыши! Не пойму что-то, как это реализовать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.04.2017, 12:46
Ответы с готовыми решениями:

Как можно закрасить несколько ячеек StringGrid?
Чтоб получилось вот так(я понимаю ,что через drawcell)

DBGrid закрасить несколько ячеек
Всех приветствую, столкнулся с такой вот задачей: имеется на форме DBGrid, таблица ADOTable 1 с полями: Наименование, Стоимость,...

Открытие блока при клике мышью
Привет, форумчане! Нацеливаюсь на меню - выскакивает подменю. Все работает. Все супер. Но хотелось бы чтобы подменю выскакивало при...

15
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33369 / 21495 / 8234
Регистрация: 22.10.2011
Сообщений: 36,892
Записей в блоге: 12
01.04.2017, 13:11
При клике на ячейку запоминать где-либо (например, в свойстве Objects соответствующей ячейки), признак того, что ячейка была выбрана пользователем, и при перерисовке (OnDrawCell) проверять состояние этого признака и рисовать ячейку соответствующим цветом.

Пример подобной отрисовки я приводил здесь: Закраска заданного диапазона ячеек StringGrid
0
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 15
01.04.2017, 13:31  [ТС]
Спасибо огромное!!! =)
И ещё такой вопрос, если не сложно: после мне нужно будет проверять клетку на цвет в if (...)! Что для этого нужно прописать в условии? Например "Если цвет клетки чёрный, то делаем то-то и то-то"! =)
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
01.04.2017, 13:35
Т.е. вы хотите закрашивать разным цветом ? Если нет, тогда:
Цитата Сообщение от volvo Посмотреть сообщение
При клике на ячейку запоминать где-либо (например, в свойстве Objects соответствующей ячейки), признак того, что ячейка была выбрана пользователем, и при перерисовке (OnDrawCell) проверять состояние этого признака и рисовать ячейку соответствующим цветом.
У вас же будет некий "массив" кликнутых ячеек, зачем проверять на цвет?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33369 / 21495 / 8234
Регистрация: 22.10.2011
Сообщений: 36,892
Записей в блоге: 12
01.04.2017, 13:37
Цитата Сообщение от Почтальон Посмотреть сообщение
Если нет, тогда:
Если да - тоже. Сохранять в Objects можно не одно значение, а несколько. Да и цвет сразу можно туда заносить, а потом при клике на ячейку проверять, тем ли цветом закрашена ячейка
1
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 15
01.04.2017, 14:48  [ТС]
В общем и целом задача стоит такая: нужно реализовать математическую игру "Жизнь"! Решил для начала сделать в сетке, а потом уже подумаю над другими способами реализации! По сути что собираюсь сделать: пользователь на старте выбирает, какие клетки будут живыми! После при нажатии на кнопку активируется объект "таймер", по которому будет прокручиваться алгоритм, по которому клетки будут менять свой статус на "живая" или "мёртвая" в соответствии с условием! Ну и цвет живых будет чёрным, а мёртвых белым! Как только разберусь с реализацией, то подумаю над разноцветностью)

П.с. Собственно, если кто-то может что-то посоветовать, буду рад)
0
694 / 6843 / 265
Регистрация: 11.08.2016
Сообщений: 3,902
01.04.2017, 17:10
Можно проще. Вместо закрашивания ставить в клеточечке какой-нибудь символ, а пустые - пустые.
0
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 15
01.04.2017, 17:16  [ТС]
Так как это не какая-то рядовая лабораторная, а курсовая, то хотелось бы постараться сделать покрасивее! Ну и разобраться с особенностями языка и программы хотелось бы! =)
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
01.04.2017, 17:46
Цитата Сообщение от SpeCura Посмотреть сообщение
нужно реализовать математическую игру "Жизнь"
Поищи на форуме, ты не первый кто эту курсовую тут решал
0
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 15
01.04.2017, 18:22  [ТС]
Хм... Ладно)
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
03.04.2017, 10:28
SpeCura,
Типа так?
Миниатюры
Закрасить несколько ячеек StringGrid при клике мышью  
0
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 15
03.04.2017, 10:47  [ТС]
Хм... Ну наверное да! Нужно ведь, что бы пользователь сам выбирал, какие клетки закрасить! =)
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
03.04.2017, 10:52
Цитата Сообщение от SpeCura Посмотреть сообщение
что бы пользователь сам выбирал, какие клетки закрасить! =)
А цвет тоже нужно выбирать пользователю ?
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
03.04.2017, 11:11
третья колонка у меня "живая" она сама меняет цвет по старению (проверка на пошедшее время и дней)
остальные в зависимости от статуса.

Добавлено через 1 минуту
а выбор клетки очень прост. кликаешь по ней - закраска. примрно правой кнопкой можно отменить.
0
0 / 0 / 0
Регистрация: 01.04.2017
Сообщений: 15
03.04.2017, 11:12  [ТС]
Цвет один по умолчанию и пользователем не определяется! Потом может быть я и озабочусь разноцветностью программы, но сейчас это не нужно!
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
03.04.2017, 11:52
Цитата Сообщение от SpeCura Посмотреть сообщение
Цвет один по умолчанию и пользователем не определяется!
Ну тогда вам уже подсказал уважаемый volvo что нужно делать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.04.2017, 11:52
Помогаю со студенческими работами здесь

Не могу разобраться переменными при клике мышью
Приветствую, гуру JS. Есть довольно обширный говнокод, со многим отладкой в хроме разобрался, но кое-что уже недели три не дает покоя,...

Сменить икосаэдр на додекаэдр при клике мышью
Ребят нужна помощь. Нужно реализовать функцию что бы при клике мышью икосаэдр менялся на додекаэдр. #include "stdafx.h" ...

Как окрасить несколько ячеек StringGrid-а?
Преподаватель попросил окрасить ячейки в таблице смежности в Stringgrid По сути путь задан в виде массива. раскрашивание ячеек не...

Выделение всего текста в TextBox при клике мышью
Друзья, подскажите пожалуйста как можно реализовать выделение ВСЕГО текста в TextBox'е посредством нажатия на этот текст мышкой? Пробовал...

Динамическое создание PictureBox при клике мышью по форме
Здравствуйте! Сегодня решил спросить. А можно сделать так чтобы при каждом нажатии мыши на форме создавался новый pictureBox и делал...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 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