Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA EXCEL Как узнать, пересикаются ли объекты / 5 сообщений из 5, страница 1 из 1
25.05.2007, 17:42
    #34552356
Stex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA EXCEL Как узнать, пересикаются ли объекты
Как узнаьб, пересикаются ли объекты ??? Заранее спасибо !!!
...
Рейтинг: 0 / 0
25.05.2007, 18:29
    #34552514
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA EXCEL Как узнать, пересикаются ли объекты
StexКак узнаьб, пересикаются ли объекты ??? Заранее спасибо !!!

Чериз их свойства Top, Left, Width и Height. Нужно ришыьб гиомитрические уравнения из курса средний школы.
...
Рейтинг: 0 / 0
25.05.2007, 18:36
    #34552544
Stex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA EXCEL Как узнать, пересикаются ли объекты
C Top, Left, Width и Height у меня проблем нет. Просто если их использовать получается достаточно здоровый код. Может есто лучшее решение ???
...
Рейтинг: 0 / 0
25.05.2007, 18:47
    #34552584
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA EXCEL Как узнать, пересикаются ли объекты
StexC Top, Left, Width и Height у меня проблем нет. Просто если их использовать получается достаточно здоровый код. Может есто лучшее решение ???
Может и есто. Но если objects или shapes все прямоугольные, то для них будет работать одна крохотная функция, которую легко написать. Функция будет возвращать булевое значение, и все.
...
Рейтинг: 0 / 0
25.05.2007, 19:18
    #34552675
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA EXCEL Как узнать, пересикаются ли объекты
Эта функция должна работать для прямоугольных Objects:

Код: plaintext
MsgBox IsOneOverAnother(CommandButton1, CommandButton2)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Public Function IsOneOverAnother(ByRef ioobjOne As Object, ByRef ioobjAnother As Object) As Boolean
    Static intCount As Integer
    
    intCount = intCount +  1 
    
    If intCount >  2  Then
       intCount =  0 
       Exit Function
    End If
        
    IsOneOverAnother = (ioobjOne.Left >= ioobjAnother.Left And ioobjOne.Left <= ioobjAnother.Left + ioobjAnother.Width) And _
     (ioobjOne.Top >= ioobjAnother.Top And ioobjOne.Top <= ioobjAnother.Top + ioobjAnother.Height)
    
    IsOneOverAnother = IsOneOverAnother Or IsOneOverAnother(ioobjAnother, ioobjOne)
    
End Function
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA EXCEL Как узнать, пересикаются ли объекты / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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