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

А зачем?
...
Рейтинг: 0 / 0
Как отловить событие - перемещение DW
    #32566267
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобще на окне 2 DW.
Я хочу их "склеить". Т.е. при перемещении одного - двигать другое ...
А шо ? Низзя ? :)
...
Рейтинг: 0 / 0
Как отловить событие - перемещение DW
    #32566309
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно - месяца полтора-два назад именно этот вопрос очень тщательно обсуждался
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
Как отловить событие - перемещение DW
    #32567223
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп, большое спасибо.
Я обошелся событием pbm_move.
Пару строк кода и все отлично работает.

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

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

На вскидку (сам не проверял): поднимать вначале ресайза и снимать по окончанию ресайза инстанысный флаг...
---
С уважением, IKAR
ikarhomecenter@narod.ru
IkarHomeCenter
...
Рейтинг: 0 / 0
Как отловить событие - перемещение DW
    #32568075
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На вскидку авторподнимать вначале ресайза и снимать по окончанию ресайза инстанысный флаг работать не будет...
...
Рейтинг: 0 / 0
Как отловить событие - перемещение DW
    #32568168
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем обходить - по сути дела в мире наших (не арабских и не израильских) Windows изменение размера от исходной точки (в левом верхнем углу) = передвижению :-)
...
Рейтинг: 0 / 0
Как отловить событие - перемещение DW
    #32568170
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но если говорить серьёзно, надо просто мапнуть 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
Период между сообщениями больше года.
Как отловить событие - перемещение DW
    #38929263
svazeeland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые, а как перемещать окошко при клике на контрол?
Задача - таскать окно без 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
Как отловить событие - перемещение DW
    #38929371
svazeeland
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На DW висел скрипт на mousemove - из за него не таскалось, убираю - все работает, он нужен, соответственно вопрос - как победить? Спасибо.
...
Рейтинг: 0 / 0
Как отловить событие - перемещение DW
    #38929606
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На каком событии mousemove висит обработчик?
У ДВ они свои ...
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как отловить событие - перемещение DW
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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