Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.14.15.94] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Привет всем! Скажите пожалуйста, как ЛУЧШЕ всего отловить и обработать клик на Splitter ?
|
Сообщ.
#2
,
|
|
|
стандартными средствами именно клик отловить нельзя, можно отловить событие OnMoved, происходящее в зависимости от свойства ResizeStyle.
|
Сообщ.
#3
,
|
|
|
Цитата OlegG,3.02.04, 08:01 Привет всем! Скажите пожалуйста, как ЛУЧШЕ всего отловить и обработать клик на Splitter ? Для сплиттера пиши ловушку на WM_LBUTTONDOWN - как писать ловушки - можно посмотреть в FAQ для других типов ловушек. |
Сообщ.
#4
,
|
|
|
можно создать свой сплиттер и обявить у него эвент OnClick, т.к. TSplitter наследник TControl, правда через TGraphicControl - вобщем можна попробовать...
Добавлено в : если не получится со стандартным TSplitter - то можно по другому - я делал свой сплиттер, он работает как обычный + на нем можно размещать др. контролы (как панель) и только что я объявил у него OnClick - работает ... |
Сообщ.
#5
,
|
|
|
Цитата Zoobastik,3.02.04, 06:58 Для сплиттера пиши ловушку на WM_LBUTTONDOWN - как писать ловушки - можно посмотреть в FAQ для других типов ловушек. Да это понятно, только не WM_LBUTTONDOWN а WM_LBUTTONCLICK. Я же спрашиваю как лучше... |
Сообщ.
#6
,
|
|
|
Цитата OlegG,3.02.04, 10:53 только не WM_LBUTTONDOWN а WM_LBUTTONCLICK Смысл - написать не свое сообщение WM_LBUTTONCLICK, а использовать уже имеющееся в Windows (и это WM_LBUTTONDOWN, его и надо ловить) Как лучше? - а как можно хуже? - по-моему все однозначно. |
Сообщ.
#7
,
|
|
|
Цитата Zoobastik,3.02.04, 08:05 Смысл - написать не свое сообщение WM_LBUTTONCLICK, а использовать уже имеющееся в Windows (и это WM_LBUTTONDOWN, его и надо ловить) WM_LBUTTONCLICK - это стандартное сообщение Windows (уже имеющееся) Цитата Zoobastik,3.02.04, 08:05 Как лучше? - а как можно хуже? - по-моему все однозначно. Существует несколько путей отловить сообщение - подправить/написать свой компонент, через объект Application... |
Сообщ.
#8
,
|
|
|
Цитата OlegG,3.02.04, 11:13 Цитата WM_LBUTTONCLICK - это стандартное сообщение Windows Как мне кажется ты путаешь сообщения Windows и сообщения Delphi (посмотрел справочник по WinAPI на русском - там именно то, что я написал - к сожалению он не полный, а SDK под рукой нет, так что на 100% не уверен). Написать можно как procedure Splitter1.Click(..); message WM_LBUTTONDOWN; Не уверен, что все правильно - на VCL почти не прогил (как и на API ) |
Сообщ.
#9
,
|
|
|
Цитата To Zoobastik When you move your mouse and click a button, a huge number of messages are generated, including WM_MOUSEMOVE for each movement of the mouse, WM_LBUTTONDOWN when the button goes down, WM_LBUTTONCLICK when the button is released Взято из "Using Visual C++ 6" |
Сообщ.
#10
,
|
|
|
Цитата OlegG,3.02.04, 12:10 Взято из "Using Visual C++ 6" Назвать можно как угодно - имхо WM_LBUTTOCLICK - это то же, что и WM_LBUTTONUP (или как там) Вообще мож я и не прав. Никогда не слеплял VCL и API (как только слегка разобрался в API, так сразу на VCL полностью забил) |
Сообщ.
#11
,
|
|
|
Дак всё-таки, как лучше всего отловить и обработать клик на Splitter ?
|
Сообщ.
#12
,
|
|
|
Хм.. у него даже хэндла нет
А ведь onMoved вызывается при нажатой кнопке мыши? |
Сообщ.
#13
,
|
|
|
Да, по-другому его сдвинуть нельзя...
|
Сообщ.
#14
,
|
|
|
а без движения не вызывается?
|
Сообщ.
#15
,
|
|
|
неа
|