|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.04.2014, 13:43 | #1 |
Пользователь
Регистрация: 13.11.2012
Сообщений: 56
|
Закрашивание ячеек грида по нажатию кнопки.
Здравствуйте. Мне необходимо закрасить ячейки, в зависимости от значений в них( учитываются только значения в зеленых ячейках). Например, если таблица заполнена так:, то после нажатия на кнопку "Найти минимальный путь", должно получится так:.
Принцип такой: Начиная с нижней левой зеленой ячейки, сравнивается зеленая ячейка справа и сверху, и та, в которой значение меньше закрашивается вместе с желтой ячейкой между двумя зелеными. Когда происходит выход из цикла закрашивается строка до конца или столбец до верха, в зависимости от "причины" выхода из цикла. Но вот почему-то закрашивание не происходит. Гугл не помог... В DrawCell пишу код: Код:
Код:
Помогите, пожалуйста. |
12.04.2014, 21:57 | #2 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,886
|
Неверный подход.
Поиск надо производить отдельно, отрисовку отдельно (например запоминать индексы клеток , включённых в путь в некий массив, и потом при отрисовке проверять их). А у Вас на каждой клетке (дроселл вызывается для каждой клетки грида, при его полной перерисовке, типа рефреша) цикл, который бегает по клеткам, но рисует постоянно в один и тот же рект. Если уж вы не хотите менять код серьёзно, то попробуйте менять хоть рект , например так Rect = stringgrid1.cellrect(acol, arow); Но ничего не гарантирую, т.к. в Ваш код почти не вчитывался (даже чисто подсознательно сложновато концентрировать внимание). |
14.04.2014, 11:28 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
полностью и категорически согласен с phomm
добавлю - ваша задача заполнить некую структуру (в простейшем случае - массив, равноразмерный StringGrid) значениями, которые однозначно определяют, являетс ли ячейка I,J частью минимального пути или нет. после этого процедура рисования грида будет брать значение из этой структуры для текущей ячейки и выводить данную ячейку нужным цветом. p.s. используйте StringGrid исключительно в качестве инструмента визуализации (отображения) данных, а не в качестве хранения в нём исходной информации и в качестве источника данных при обработке! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Закрашивание ячеек | Vladya | Microsoft Office Excel | 4 | 11.11.2013 21:03 |
макрос в excel (vba) закрашивание ячеек | Alex_91 | Помощь студентам | 0 | 23.05.2012 00:05 |
JTable закрашивание ячеек | X@OC | Общие вопросы по Java, Java SE, Kotlin | 2 | 08.02.2012 11:48 |
Закрашивание ячеек в DBGRID | jimmi З | Помощь студентам | 2 | 05.05.2011 06:38 |
Закрашивание ячеек в StringGrid | ИВэТэшка | Помощь студентам | 7 | 12.04.2009 11:09 |