4 / 4 / 2
Регистрация: 29.11.2012
Сообщений: 28
|
||||||
1 | ||||||
Закрасить ячейку в Stringgrid по клику28.04.2013, 17:15. Показов 18028. Ответов 7
Метки нет (Все метки)
Такая проблема - нужно, чтобы при клике на ячейку в Stringgrid она окрашивалась в определенный цвет в зависимости от того, какое в ней значение. У меня у ячеек рандомное значение -1 либо 0. При клике на ячейку -1 она должна стать красной, при клике на 0 - черной. Через процедуру SelectCell работает, но цвет ячейки показывается на секунду. А мне нужно, чтобы при единоразовом клике ячейка оставалась красной либо черной. Вот моя процедура
0
|
28.04.2013, 17:15 | |
Ответы с готовыми решениями:
7
Как закрасить ячейку в StringGrid? Как закрасить ячейку в StringGrid? Как закрасить определённую ячейку в StringGrid Закрасить ячейку в Stringgrid с минимальным элементом |
4 / 4 / 2
Регистрация: 29.11.2012
Сообщений: 28
|
||||||
28.04.2013, 18:47 [ТС] | 4 | |||||
Спасибо, переделала через DrawCell, немного помогло=) Теперь ячейка при клике остается нужного цвета, но мне нужно, чтобы при клике на другую ячейку она тоже окрашивалась в нужный цвет, а прошлая оставляла свой цвет... Сейчас у меня так, что только одна ячейка во всей таблице закрашена, а мне нужно чтобы закрашены были все "кликнутые".
Добавлено через 36 минут Всё, вопрос снят, нашла ошибку сама
0
|
13106 / 5887 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
|
28.04.2013, 18:56 | 6 |
1. По щелчку левой кнопки мыши закрасить ячейку, по щелчку правой кнопки мыши - сбросить цвет ячейки: Меняем цвет ячеек стрингрида
2. Пометить цветом те ячейки, которые подверглись редактированию: https://www.cyberforum.ru/delp... ost2372272 3. Раскраска TStringGrid: Раскраска stringgrid
2
|
4 / 4 / 2
Регистрация: 29.11.2012
Сообщений: 28
|
||||||
29.04.2013, 18:20 [ТС] | 7 | |||||
Сообщение было отмечено Taatshi как решение
Решение
В 7 строке кода не нужно прописывать условие
0
|
13106 / 5887 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
|
|||||||||||
30.04.2013, 09:47 | 8 | ||||||||||
Так можно сделать, но при этом потребуется отслеживать случаи изменения размеров таблицы - чтобы соответствующим образом изменить размер массива. И случаи очистки таблицы или части таблицы тоже придётся отслеживать.
Самый удобный способ - это хранить флаг закраски прямо в данных, связанных с ячейкой. Такой способ применяется в примерах: 1. По щелчку левой кнопки мыши закрасить ячейку, по щелчку правой кнопки мыши - сбросить цвет ячейки: Меняем цвет ячеек стрингрида 2. Пометить цветом те ячейки, которые подверглись редактированию: https://www.cyberforum.ru/delp... ost2372272 Идея здесь заключается в следующем. Строки и столбцы таблицы типа TStringGrid - это потомки класса TStrings. А каждый элемент TStrings представляет собой пару: <строка>-<объект>. Таким образом каждой ячейке таблицы типа TStringGrid соответствует пара: <строка>-<объект>. И вот под видом объекта можно присоединять любые данные. В нашем случае флаг можно хранить прямо в виде значения указателя на объект:
2
|
30.04.2013, 09:47 | |
30.04.2013, 09:47 | |
Помогаю со студенческими работами здесь
8
Закрасить определенную ячейку StringGrid-а другим цветом Как закрасить ячейку в Stringgrid, в которой есть "*" StringGrid закрасить ячейку Закрасить ячейку StringGrid Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |