:: Visual Foxpro, Foxpro for DOS
Координаты мыши
Dron2003
Автор

Сообщений: 81
Дата регистрации: 14.11.2008
Всем привет!
Ребята, теперь нужна помощь вот в такой ситуации:
Форма по размеру экрана(допустим 1024х720). В этой форме картинка image1 размером 2000х2000. Я ее могу полностью просмотреть двигая скролом в форме. Мне так надо. Задача стоит в следующем: В определенном месте нажимаю правую кнопку мыши и туда добавляется картинка2. Всё работает пока картинка 1 не передвигалась скролом, но стоит передвинуть, чтобы увидеть дальний угол, перестаёт работать. Т.е координаты перемещения передаются по размеру формы, а мне нужно по размеру картинки. Как это сделать? Для передачи координат использовал mcol(0,3) и mrow(0,3).



Исправлено 1 раз(а). Последнее : Dron2003, 30.10.18 15:12
Ratings: 0 negative/0 positive
Re: Координаты мыши
PaulWist

Сообщений: 14621
Дата регистрации: 01.04.2004
OBJTOCLIENT(ObjectName, nPosition)


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Координаты мыши
Dron2003
Автор

Сообщений: 81
Дата регистрации: 14.11.2008
Что-то нули возвращает....
tmp_x=OBJTOCLIENT(thisform.Image1,2)
tmp_y=OBJTOCLIENT(thisform.Image1,1)

Ну, всё правильно. Объект расположен по координатам 0,0. Эта команда даёт расположение объекта и его размеры. А мне надо координаты мышки.



Исправлено 1 раз(а). Последнее : Dron2003, 30.10.18 16:10
Ratings: 0 negative/0 positive
Re: Координаты мыши
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
ViewPortLeft, ViewPortTop - смещение "видимого куска".


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Координаты мыши
PaulWist

Сообщений: 14621
Дата регистрации: 01.04.2004
Не понял проблемы?

PUBLIC o
o = CREATEOBJECT('frmScroll')
WITH o
.addobject('Image1','Img')
WITH .Image1
.visible = .t.
.Top = 100
.Left = 100
.height = 20000
.Width = 20000
ENDWITH
.show()
ENDWITH
DEFINE CLASS frmScroll AS Form
ScrollBars = 3
ENDDEFINE
DEFINE CLASS Img as Image
PROCEDURE Click
WITH thisform
IF TYPE('thisform.Label1') = 'O'
.RemoveObject('Label1')
ENDIF
.addobject('Label1', 'Label')
WITH .Label1
.Top = MRow(0, 3)
.Left = MCol(0, 3)
.Caption = TRANSFORM(MRow(0,3)) + '; ' + TRANSFORM(MCol(0,3))
.Visible = .t.
ENDWITH
ENDWITH
ENDPROC
ENDDEFINE


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)




Исправлено 1 раз(а). Последнее : PaulWist, 31.10.18 17:01
Ratings: 0 negative/0 positive
Re: Координаты мыши
Dron2003
Автор

Сообщений: 81
Дата регистрации: 14.11.2008
Разобрался. Спасибо. Оказывается проблема была в том, что по этим коордам вызывалось диалоговое окно, а потом вставлялась картинка. Изменил логику - всё заработало как нужно. Ещё раз всем спасибо.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 28 Bront  (Гостей: 27)

© 2000-2024 Fox Club 
Яндекс.Метрика