|
Вопрос # 3 842/ вопрос открыт / |
|
Здравствуйте!У меня на форме два stringgrid-а,один из них разноцветный,у другого есть, помимо всего прочего, два столбца:
1. № столбца;
2. № строки.
Задача в следующем,при клике мышки на первом stringgrid-е,необходимо проанализировать цвет ячейки и по некоторому условию заполнить во втором stringgrid-е необходимые столбцы для данной ячейке.
У меня два вопроса:
1.Каким обработчиком событий воспользоваться;
2.Как проанализировать цвет ячейки.
 |
Вопрос задал: GAZ (статус: Посетитель)
Вопрос отправлен: 3 марта 2010, 17:04
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 9; последнее сообщение — 5 марта 2010, 22:47; участников в обсуждении: 4.
|
DNK (статус: Студент), 3 марта 2010, 17:40 [#1]:
Любопытно. С каких это пор стандартный StringGrid стал разноцветным?
"Digital Networked Knight"
|
|
GAZ (статус: Посетитель), 3 марта 2010, 19:34 [#2]:
DNK
бери OnDrawCell и чуди как хочешь
|
|
DNK (статус: Студент), 3 марта 2010, 22:12 [#3]:
Раз тебе известно об OnDrawCell, то какие могут быть проблемы с анализом цвета ячейки.
"Digital Networked Knight"
|
|
GAZ (статус: Посетитель), 4 марта 2010, 06:10 [#4]:
DNK
У отдельной ячейки нет свойства Color
|
|
Ерёмин А.А. (статус: *Администратор), 4 марта 2010, 12:47 [#5]:
GAZ:
Если отрисовка ручная, то цвета ячеек надо вручную хранить. Либо 1) использовать двумерный массив на TColor, либо 2) воспользоваться свойством Tag, либо как-то ещё по-своему.
|
|
Вадим К (статус: Академик), 4 марта 2010, 12:57 [#6]:
Так как отрисовка ячеек скорее всего ручная, то значит есть некое правило (кусок кода, по которому выбрается цвет). так вот, не надо думать, как цвет ячейки взять, можно просто взять тот же код.
Но если сильно хочется именно "брать цвет" (ну мало как хочется), то можно.
для начала по координатам ячейки проверяем ее координаты
l := StringGrid1.CellRect(5,5).Left,
t := StringGrid1.CellRect(5,5).Top
теперь, можно у канвы подсмотреть цвет
StringGrid1.Canvas.pixels[l+1, t+1]
Галочка "подтверждения прочтения" - вселенское зло.
|
|
GAZ (статус: Посетитель), 5 марта 2010, 06:53 [#7]:
Вадим К
У Вас единственного есть разумное зерно в ответе,может и с первым вопросом поможете.Просто я думаю что обычный клик в качестве обработчика не подойдёт.
|
|
Вадим К (статус: Академик), 5 марта 2010, 11:06 [#8]:
Тот код, который я предложил - это жуткий костыль и я настойчиво не рекомендую так писать. Именно НАСТОЙЧИВО!
Обработать надо не MouseDown (вроде так оно называется) или MouseUp - в зависимости от логики. там и координаты передаются . так что если что, зная координаты самого StringGrid'a или воспользовавшись функциями преобразования координат (метод Screen...toClient - не помню точно) можно получить координаты для канвы... а дальше уже понятно.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
DNK (статус: Студент), 5 марта 2010, 22:47 [#9]:
Меня терзают смутные сомнения: А был ли этот многоцветный StringGrid?
"Digital Networked Knight"
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|