Страница: 1 |
Страница: 1 |
Вопрос: Люди помогите.
Добавлено: 08.06.06 19:48
Автор вопроса: Mervil
Хочу создать обьект дуга с событиями, методами.
Реализовал простым рисованием на форме(есть клас - его метод рисует ее). Задолбался отлавливать на форме когда я по ней кликну мышкой. Есть ли какой-то стандартный елемент, похож на Shape или Line?
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Nj
ICQ: 223663115
Вопросов: 21
Ответов: 285
Профиль | | #1
Добавлено: 08.06.06 21:59
Свой класс создавай - в нем эвент и радуйся.
Номер ответа: 2
Автор ответа:
Mervil
Вопросов: 1
Ответов: 7
Профиль | | #2
Добавлено: 09.06.06 18:39
Класс создавал, а проблемы не ушли.
Теперь следи за прорисовкой и наложением линий - это и производительность и скорость падает.
В стандартных это уже реализовано.
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 10.06.06 16:02
>Теперь следи за прорисовкой и наложением линий
UserControl1.AutoRedraw = True
.BaskStyle = Transparent
?
>производительность и скорость падает
код в студию...
Номер ответа: 4
Автор ответа:
Mervil
Вопросов: 1
Ответов: 7
Профиль | | #4
Добавлено: 13.06.06 12:29
По поводу кривой - зделал, события отследил, вроде даже ничего.
Но проблема №2 UserControl1 имея в своем ассортименте лэбл и всскролл при отображении глючит на все 100%.
>код в студию...
Будет.
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 13.06.06 20:40
телепатов нет у нас, надо смотреть на код, или описывай проблему точнее, а не "глючит на 100%"
Номер ответа: 6
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #6
Добавлено: 14.06.06 14:13
Создай Windowless контрол. Обрабатывай события HitTest и Paint. Создай Event, вызывай RaiseEvent.
Номер ответа: 7
Автор ответа:
Mervil
Вопросов: 1
Ответов: 7
Профиль | | #7
Добавлено: 19.06.06 12:15
Как и обещал:
Public Function SelectMe(sx As Integer, sy As Integer) As Boolean
If Not MyType And Sqr((sx - mvarX) ^ 2 + (sy - mvarY) ^ 2) < mvarR + mvarWidht / 2 And Sqr((sx - mvarX) ^ 2 + (sy - mvarY) ^ 2) > mvarR - mvarWidht / 2 Then
SelectMe = True
ElseIf MyType And Sqr((sx - mvarX) ^ 2 + (sy - mvarY) ^ 2) < mvarR + mvarWidht / 2 _
And Sqr((sx - mvarX) ^ 2 + (sy - mvarY) ^ 2) > mvarR - mvarWidht / 2 Then
 im smXper As Integer, smYper As Integer
 im smXper2 As Integer, smYper2 As Integer
 im smDX As Single, smDY As Single
 im smDl As Integer
smDl = (mvarR + mvarWidht)
smXper = mvarX + smDl * Int(Cos(mvarAngl0) * 10) / 10
smYper = mvarY - smDl * Int(Sin(mvarAngl0) * 10) / 10
smXper2 = mvarX + smDl * Int(Cos(mvarAngl) * 10) / 10
smYper2 = mvarY - smDl * Int(Sin(mvarAngl) * 10) / 10
smDX = Sgn(smXper - smXper2)
smDY = Sgn(smYper - smYper2)
SelectMe = False
If smDX < 0 And smDY < 0 And sy > smYper And sx < smXper2 Then SelectMe = True
If smDX > 0 And smDY > 0 And sy < smYper And sx > smXper2 Then SelectMe = True
If smDX > 0 And smDY < 0 And sx < smXper And sy < smYper2 Then SelectMe = True
If smDX < 0 And smDY > 0 And sx > smXper And sy > smXper2 Then SelectMe = True
If smDX = 0 And smDY < 0 And sx < smXper Then SelectMe = True
If smDX = 0 And smDY > 0 And sx > smXper Then SelectMe = True
If smDX > 0 And smDY = 0 And sy < smYper Then SelectMe = True
If smDX < 0 And smDY = 0 And sy > smYper Then SelectMe = True
Else
SelectMe = False
End If
End Function
Для кривой нахождения. Работает.
Проблема в другом создавал свой контрл - Лбл и ТекстБох - Делаю его видимым или не видимым. И тормозит ужас.