Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.133.144.217] |
|
Сообщ.
#1
,
|
|
|
Есть фигура (Shape), нужно найти ячейку в её центре. Есть TopLeftCell, есть RightBottomCell, а вот CenterCell нет, а мне надо
Короче, мне нужно найти ячейку по координатам (я могу взять у Shape Left+Widht/2 и Top+Height/2). Как это сделать? Вариант взять среднее (Row, Column) между TopLeftCell и RightBottomCell не годится, результат кривой (часто находится не та ячейка). |
Сообщ.
#2
,
|
|
|
По-моему, задача безнадёжная - ведь ещё и размеры ячеек имеют право быть разными, одни шире, другие выше... думаю, надо переходить от ячеек к пиксельным координатам в окне, и уже по ним искать центр и ячейку, поверх которой этот центр находится.
|
Сообщ.
#3
,
|
|
|
Короче, функции, которая возвращает ячейку по координатам, нет, так?
Добавлено В общем, сделал перебором ячеек (Range) от TopLeftCell до RightBottomCell. И дальше проверял нахождение нужной координаты внутри диапазона Left ... Left+Width. |
Сообщ.
#4
,
|
|
|
Цитата Jin X @ В общем, сделал перебором ячеек (Range) от TopLeftCell до RightBottomCell. И дальше проверял нахождение нужной координаты внутри диапазона Left ... Left+Width. А Width зачем? не проще было тупо смотреть - если перескочил, то берёшь предыдущую, иначе запоминаешь текущую и идёшь к следующей. Сперва по колонкам, потом по строкам. Или у тебя там объединённые ячейки? |
Сообщ.
#5
,
|
|
|
Akina, чем это проще?
|
Сообщ.
#6
,
|
|
|
Да тем, что меньше за свойства дёргать.
В предлагаемом варианте будет 2 цикла, где каждая ячейка дёргается за одно свойство (всего - максимум 2*N). Тогда как в твоём варианте - цикл один, а свойств ты дёргаешь по 4, т.е. максимум (4*N). |