Страница: 1 | 2 |
Вопрос: задать координаты кликом мыши на picture
Добавлено: 14.05.07 16:21
Автор вопроса: litt
Доброе время суток!
Новая проблема:
График строится по координатам x,y(график в первой четверти, x от 0 до 200, y от 0 до 200), введенными с клавиатуры в текстбокс, график выводится на пикчер. Нужно сделать так, чтобы была возможность получения координаты точки кликом мыши по пикчер, т.е альтернатива вводу в текстбокс: кликаешь на область в пикчере и получаешь координату x,y
Ответы
Всего ответов: 20
Номер ответа: 1
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #1
Добавлено: 14.05.07 16:26
Есть свойство mouse_move оно и показивает координати...
Номер ответа: 2
Автор ответа:
litt
Вопросов: 6
Ответов: 18
Профиль | | #2
Добавлено: 14.05.07 17:17
но мне нужно не в экранных координатах, а в координатах на пикчере
Номер ответа: 3
Автор ответа:
intel-DX
ICQ: 445091742
Вопросов: 4
Ответов: 169
Профиль | | #3
Добавлено: 14.05.07 17:17
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button <> 1 Then Exit Sub
Label1 = X
Label2 = Y
End Sub
Номер ответа: 4
Автор ответа:
intel-DX
ICQ: 445091742
Вопросов: 4
Ответов: 169
Профиль | | #4
Добавлено: 14.05.07 17:20
Тебе в координатах екрана или формы?
Номер ответа: 5
Автор ответа:
litt
Вопросов: 6
Ответов: 18
Профиль | | #5
Добавлено: 14.05.07 17:24
в координатах picturebox
Номер ответа: 6
Автор ответа:
intel-DX
ICQ: 445091742
Вопросов: 4
Ответов: 169
Профиль | | #6
Добавлено: 14.05.07 17:26
ну значит тебе мой пример подойдет
Номер ответа: 7
Автор ответа:
litt
Вопросов: 6
Ответов: 18
Профиль | | #7
Добавлено: 14.05.07 19:10
спасибо, работает, но там большие значения x и y выводятся, а мне нужно в программе, чтобы значения x и y
были от 0 до 200
Номер ответа: 8
Автор ответа:
Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #8
Добавлено: 14.05.07 19:49
x=(x/Picture1.ScaleWidth)*200
Номер ответа: 9
Автор ответа:
litt
Вопросов: 6
Ответов: 18
Профиль | | #9
Добавлено: 14.05.07 20:09
Ооооо...спасибо...
а если Y = (Y / Picture1.ScaleWidth) * 200, то получается, что 0 по оси у находится вверхнем левом углу, как это исправить?
Номер ответа: 10
Автор ответа:
Серёга
ICQ: 262809473
Вопросов: 17
Ответов: 561
Web-сайт:
Профиль | | #10
Добавлено: 14.05.07 20:20
Если Y, то юзать надо не ширину а высоту, т.е. Picture1.ScaleHeight
Номер ответа: 11
Автор ответа:
litt
Вопросов: 6
Ответов: 18
Профиль | | #11
Добавлено: 14.05.07 22:28
все равно также ... 0 по y в левом верхнем углу
Номер ответа: 12
Автор ответа:
Боцман
ICQ: 295725312
Вопросов: 53
Ответов: 830
Web-сайт:
Профиль | | #12
Добавлено: 14.05.07 23:10
Label1 = X * 200 \ Picture1.ScaleWidth
Label2 = (Y - Picture1.ScaleHeight) * 200 \ (Picture1.ScaleHeight) * -1
Номер ответа: 13
Автор ответа:
litt
Вопросов: 6
Ответов: 18
Профиль | | #13
Добавлено: 14.05.07 23:24
воооо, можно так:
Picture1.Scale (0, Picture1.ScaleHeight)-(Picture1.ScaleWidth, 0)
Номер ответа: 14
Автор ответа:
litt
Вопросов: 6
Ответов: 18
Профиль | | #14
Добавлено: 22.05.07 19:02
Вот мой код, почему-то при первом клике на пикчер, выводятся отрицательные координаты, чего быть не должно, при втором и последующих кликах-все правильно выводится, может кто-нибудь подскажет в чем ошибка?
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.Scale (0, Picture1.ScaleHeight)-(Picture1.ScaleWidth, 0)
If Button <> 1 Then Exit Sub
X = (X / Picture1.ScaleWidth) * 200
Y = (Y / Picture1.ScaleHeight) * 200
Label1 = X
Label2 = Y
End Sub
Номер ответа: 15
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #15
Добавлено: 22.05.07 19:44
может просто
'x = x / Screen.TwipPixelPear как-то так непомню..
х = x / 15
?