Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Объекты, принадлежащие области / 4 сообщений из 4, страница 1 из 1
13.09.2009, 18:11
    #36193091
Валентин Н.Карелин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объекты, принадлежащие области
Функцией Sys(1270, X, Y) можно определить наличие объекта в т.(X,Y), - это несомненная польза. Но вот чтобы узнать все объекты в области (X...Xn, Y...Yn) нужно вызвать функцию много раз. Так для области 100х100 пискелей надо вызвать Sys(1270) в цикле 10'000 раз, чтобы перекрыть все точки области. Ведь объект может быть где угодно и сколько угодно. А это время!

Есть ли функция, определяющая все объекты некоторой области экрана более быстро?
...
Рейтинг: 0 / 0
14.09.2009, 05:50
    #36193332
Kruchinin Pahan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объекты, принадлежащие области
Валентин Н.КарелинФункцией Sys(1270, X, Y) можно определить наличие объекта в т.(X,Y), - это несомненная польза. Но вот чтобы узнать все объекты в области (X...Xn, Y...Yn) нужно вызвать функцию много раз. Так для области 100х100 пискелей надо вызвать Sys(1270) в цикле 10'000 раз, чтобы перекрыть все точки области. Ведь объект может быть где угодно и сколько угодно. А это время!

Есть ли функция, определяющая все объекты некоторой области экрана более быстро?
Здесь проще от обратного - перебрать все объекты и сравнить математически, не пересекают ли они некую область.

Дабы не пересчитывать вложенные координаты, помогает OBJTOCLIENT.
...
Рейтинг: 0 / 0
14.09.2009, 10:33
    #36193562
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объекты, принадлежащие области
> Автор: Валентин Н.Карелин
> Функцией Sys(1270, X, Y) можно определить наличие объекта в т.(X,Y), - это несомненная польза. Но вот чтобы
> узнать все объекты в области (X...Xn, Y...Yn) нужно вызвать функцию много раз. Так для области 100х100 пискелей надо
> вызвать Sys(1270) в цикле 10'000 раз, чтобы перекрыть все точки области. Ведь объект может быть где угодно и сколько
> угодно. А это время!


А зачем тебе проверять? У тебя есть иерархия объектов, т.е. если попадаем мышкой по одному объекту, можно получить его
"родителя" в котором он находится. И по веренице "родителей" выйти на уровень который нужно выделять.

З.Ы. Это я подумал, что тебе нужно реализовывать как в контейнере, просто клик - выделяет сам контейнер, а клик с
нажатым Ctrl выделяет объект внутри контейнера. Или я не правильно подумал?


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
14.09.2009, 11:59
    #36193784
Валентин Н.Карелин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объекты, принадлежащие области
Здесь задача: начертить мышью произвольный 4-х угольник на экране и определить, какие объекты попали в его площадь. Самый простой вариант - перебор от 1 до ControlCount всех объектов формы на предмет (полного или частичного) попадания их в пределы мышиного 4-х угольника. Попавшие объекты выделяются. Ну эту задачу я решил.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Объекты, принадлежащие области / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]