Гость
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как отловить событие - перемещение DW / 12 сообщений из 12, страница 1 из 1
17.06.2004, 20:16
    #32566233
PaulJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие - перемещение DW
На окне есть DW с заголовком.
За этот заголовок DW можно перемещать.
Как отловить это (перемещение) событие ?
...
Рейтинг: 0 / 0
17.06.2004, 20:27
    #32566242
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие - перемещение DW
Map pbm_move?

А зачем?
...
Рейтинг: 0 / 0
17.06.2004, 21:00
    #32566267
PaulJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие - перемещение DW
Вобще на окне 2 DW.
Я хочу их "склеить". Т.е. при перемещении одного - двигать другое ...
А шо ? Низзя ? :)
...
Рейтинг: 0 / 0
17.06.2004, 22:07
    #32566309
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие - перемещение DW
Можно - месяца полтора-два назад именно этот вопрос очень тщательно обсуждался
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=406e0c4d%241%40forums-2-dub&rnum=1&prev=/groups%3Fas_q%3Dmove%26safe%3Dimages%26ie%3DUTF-8%26as_ugroup%3Dsybase.public.powerbuilder.*%26as_uauthors%3Dsalgannik%26lr%3D%26hl%3Den

Там ещё есть интересное решение от Steve_Katzа...
...
Рейтинг: 0 / 0
18.06.2004, 13:35
    #32567223
PaulJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие - перемещение DW
Филипп, большое спасибо.
Я обошелся событием pbm_move.
Пару строк кода и все отлично работает.

Но вот есть один интересный эффект.
Эти DW у меня еще и resizable. Так вот: если изменять размер с помощью правого-нижнего угла или нижнего бордюра или правого бордюра- все ок, а вот если за левый-верхний угол или верхний бордюр или левый бордюр, то вызывается событие pbm_move.
Оно не страшно, но было бы интересно это обойтить.

PB 8.0.4.10656
...
Рейтинг: 0 / 0
18.06.2004, 13:42
    #32567249
Ikar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие - перемещение DW
PaulJB... а вот если за левый-верхний угол или верхний бордюр или левый бордюр, то вызывается событие pbm_move ...

На вскидку (сам не проверял): поднимать вначале ресайза и снимать по окончанию ресайза инстанысный флаг...
---
С уважением, IKAR
ikarhomecenter@narod.ru
IkarHomeCenter
...
Рейтинг: 0 / 0
18.06.2004, 18:44
    #32568075
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие - перемещение DW
На вскидку авторподнимать вначале ресайза и снимать по окончанию ресайза инстанысный флаг работать не будет...
...
Рейтинг: 0 / 0
18.06.2004, 20:30
    #32568168
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие - перемещение DW
А зачем обходить - по сути дела в мире наших (не арабских и не израильских) Windows изменение размера от исходной точки (в левом верхнем углу) = передвижению :-)
...
Рейтинг: 0 / 0
18.06.2004, 20:46
    #32568170
Филипп
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие - перемещение DW
Но если говорить серьёзно, надо просто мапнуть pbm_nclbuttondown , в нём написать
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
integer HTLEFT =  10 
integer HTTOP =   12 
integer HTTOPLEFT =  13 

CHOOSE CASE hittestcode 
   CASE HTLEFT, HTTOP, HTTOPLEFT //можно играть по вкусу :-)
	message.processed = TRUE
	RETURN  1 
   CASE ELSE
        RETURN  0 
END CHOOSE
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
07.04.2015, 14:13
    #38929263
svazeeland
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие - перемещение DW
Уважаемые, а как перемещать окошко при клике на контрол?
Задача - таскать окно без titlebar при нажатии на какой то контрол.
Понятно что можно отловить mousemove на контроле, но это лишнее имхо, должен быть способ просто транслировать соответствующее событие на родительское окно.
Если на окне на mousedown прописать код:
CONSTANT uint HTCAPTION = 2
CONSTANT uint WM_NCLBUTTONDOWN = 161
Send( Handle( this ), WM_NCLBUTTONDOWN, HTCAPTION, Long( xpos, ypos ) )
окошко замечательно таскается.
Если то же самое сделать на dw, например, ( handle(parent) само собой ), то окно не перемещается.
Интересный эффект причем - если включить дебагер с точкой останове на Send... снять точку после первого попадания и еще раз попробовать потаскать - окно забегало, вообще непонятно...
...
Рейтинг: 0 / 0
07.04.2015, 15:02
    #38929371
svazeeland
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие - перемещение DW
На DW висел скрипт на mousemove - из за него не таскалось, убираю - все работает, он нужен, соответственно вопрос - как победить? Спасибо.
...
Рейтинг: 0 / 0
07.04.2015, 17:18
    #38929606
PaulJB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отловить событие - перемещение DW
На каком событии mousemove висит обработчик?
У ДВ они свои ...
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как отловить событие - перемещение DW / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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