На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Клик на Splitter
    Привет всем! Скажите пожалуйста, как ЛУЧШЕ всего отловить и обработать клик на Splitter ?
      стандартными средствами именно клик отловить нельзя, можно отловить событие OnMoved, происходящее в зависимости от свойства ResizeStyle.
        Цитата OlegG,3.02.04, 08:01
        Привет всем! Скажите пожалуйста, как ЛУЧШЕ всего отловить и обработать клик на Splitter ?

        Для сплиттера пиши ловушку на WM_LBUTTONDOWN - как писать ловушки - можно посмотреть в FAQ для других типов ловушек.
        Сообщение отредактировано: Zoobastik -
          можно создать свой сплиттер и обявить у него эвент OnClick, т.к. TSplitter наследник TControl, правда через TGraphicControl - вобщем можна попробовать...

          Добавлено в :
          если не получится со стандартным TSplitter - то можно по другому - я делал свой сплиттер, он работает как обычный + на нем можно размещать др. контролы (как панель) и только что я объявил у него OnClick - работает ...
            Цитата Zoobastik,3.02.04, 06:58
            Для сплиттера пиши ловушку на WM_LBUTTONDOWN - как писать ловушки - можно посмотреть в FAQ для других типов ловушек.

            Да это понятно, только не WM_LBUTTONDOWN а WM_LBUTTONCLICK. Я же спрашиваю как лучше...
              Цитата OlegG,3.02.04, 10:53
              только не WM_LBUTTONDOWN а WM_LBUTTONCLICK

              Смысл - написать не свое сообщение WM_LBUTTONCLICK, а использовать уже имеющееся в Windows (и это WM_LBUTTONDOWN, его и надо ловить)

              Как лучше? - а как можно хуже? ;) - по-моему все однозначно.
                Цитата Zoobastik,3.02.04, 08:05
                Смысл - написать не свое сообщение WM_LBUTTONCLICK, а использовать уже имеющееся в Windows (и это WM_LBUTTONDOWN, его и надо ловить)

                WM_LBUTTONCLICK - это стандартное сообщение Windows (уже имеющееся)
                Цитата Zoobastik,3.02.04, 08:05
                Как лучше? - а как можно хуже? - по-моему все однозначно.

                Существует несколько путей отловить сообщение - подправить/написать свой компонент, через объект Application...
                Сообщение отредактировано: OlegG -
                  Цитата OlegG,3.02.04, 11:13
                  Цитата

                  WM_LBUTTONCLICK - это стандартное сообщение Windows

                  Как мне кажется ты путаешь сообщения Windows и сообщения Delphi (посмотрел справочник по WinAPI на русском - там именно то, что я написал - к сожалению он не полный, а SDK под рукой нет, так что на 100% не уверен).

                  Написать можно как procedure Splitter1.Click(..); message WM_LBUTTONDOWN;
                  Не уверен, что все правильно - на VCL почти не прогил (как и на API :))
                    Цитата 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"
                    Сообщение отредактировано: OlegG -
                      Цитата OlegG,3.02.04, 12:10
                      Взято из "Using Visual C++ 6"

                      Назвать можно как угодно - имхо WM_LBUTTOCLICK - это то же, что и WM_LBUTTONUP (или как там) :)

                      Вообще мож я и не прав. Никогда не слеплял VCL и API (как только слегка разобрался в API, так сразу на VCL полностью забил)
                        Дак всё-таки, как лучше всего отловить и обработать клик на Splitter ?
                          Хм.. у него даже хэндла нет :(
                          А ведь onMoved вызывается при нажатой кнопке мыши?
                            Да, по-другому его сдвинуть нельзя...
                              а без движения не вызывается?
                                неа :(
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0338 ]   [ 17 queries used ]   [ Generated: 27.04.24, 04:00 GMT ]