Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];

Вниз

Popup меню раскрыть и скрыть   Найти похожие ветки 

 
Дмитрий_05   (2005-09-13 20:45) [0]

Что-то у меня никак не получается сделать вот как: нажмешь на кнопку, popup раскроется, еще раз нажмешь закроется, и т.д. Я уже незнаю что и делать... ввел переменную типа boolean которая разрешает открыть popup, т.е. если допустим b: boolean; b=true(меню раскрыто), то на повторном нажатии ничего не делать, меню само уберется... Но меню же можно закрыть и простым нажатием на форму и т.д. и т.п... Я отлавливал WM_EXITMENULOOP, думал что это спасет... и нет же... оно происходит до того как произойдет событие MouseDown или Click... что делать ума не приложу... может у кого-то есть какие-то идеи?


 
Дмитрий_05   (2005-09-13 20:51) [1]

P.S. в WM_EXITMENULOOP я какраз и присваиваю переменной b:=false, т.е. меню закрыто, при нажатии на кнопку можно открывать... Но потом тудже сделует событие MouseDown и меню опять открывается...


 
Дмитрий_05   (2005-09-13 23:35) [2]

Я неправильно выразился, что меня непонять? Помогите пожалуйста...


 
Defunct ©   (2005-09-14 02:48) [3]

> Но меню же можно закрыть и простым нажатием на форму и т.д. и т.п...

Так и должно быть, зачем что-то еще выдумывать?


 
Дмитрий_05   (2005-09-14 04:01) [4]

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


 
Defunct ©   (2005-09-14 05:18) [5]

Дмитрий_05   (14.09.05 04:01) [4]
> Закроется, а кнопке же надо как-то об этом сообщить, что меню закрылось...

Зачем?

> А то при следующем нажатии ничего не произойдет...

Зачем этот флажек? Уберите его и не будет проблемы.
Пусть по нажатию на кнопку только создается Popup, а уж закрываться он будет сам.


 
Дмитрий_05   (2005-09-14 05:39) [6]

Нужно чтобы при первом нажатии на кнопку меню раскрылось, при втором нажатии меню закрылось.


 
Defunct ©   (2005-09-14 06:26) [7]

Дмитрий_05   (14.09.05 05:39) [6]

TPopupMenu так работать не умеет.
Все создаваемые PopupMenu автоматически регистрируются в PopupList"е (модуль Menus), который и отвечает за их показ и гашение.


 
Дмитрий_05   (2005-09-14 15:32) [8]

ведь можно же как-нибудь "научить" его... ведь если к ToolButton прикрутить popupmenu оно так и работает, как мне нужно


 
Игорь Шевченко ©   (2005-09-14 16:01) [9]

Дмитрий_05   (14.09.05 15:32) [8]

Почему бы не посмотреть, как это сделано в TToolbar ?
Особенно метод
function TToolBar.CheckMenuDropdown(Button: TToolButton): Boolean;

Defunct ©   (14.09.05 06:26) [7]


> TPopupMenu так работать не умеет.


Умеет.


 
Игорь Шевченко ©   (2005-09-14 16:02) [10]

Дмитрий_05   (14.09.05 15:32) [8]

Почему бы не посмотреть, как это сделано в TToolbar ?
Особенно метод
function TToolBar.CheckMenuDropdown(Button: TToolButton): Boolean;

Defunct ©   (14.09.05 06:26) [7]


> TPopupMenu так работать не умеет.


Умеет.


 
Defunct ©   (2005-09-14 18:35) [11]

> Игорь Шевченко
> function TToolBar.CheckMenuDropdown(Button: TToolButton): Boolean;

реализовано довольно сложно..

> Умеет.
имелось в виду, что нет прямого способа сделать так..
PopupMenu все-таки управляемый (не только нами) объект.


 
Игорь Шевченко ©   (2005-09-14 18:38) [12]

Defunct ©   (14.09.05 18:35) [11]


> реализовано довольно сложно


А никто простых решений не обещал.


> имелось в виду, что нет прямого способа сделать так..
> PopupMenu все-таки управляемый (не только нами) объект.


Этой фразы не понимаю. Дело в том, что компонент (кнопку, с выпадающим меню) я делал три года назад, так что невозможного я в этом не вижу. Делал примерно по тому же принципу, что и в тулбаре.


 
Defunct ©   (2005-09-14 18:48) [13]

> Игорь Шевченко

никто и не говорит о невозможности решения задачи, речь идет лишь только о реализованых возможностях TPopupMenu.. PopupMenu не содержит ни метода Hide, ни свойства по которому можно отследить отображается он в данный момен или нет.


 
Игорь Шевченко ©   (2005-09-14 18:53) [14]

Defunct ©   (14.09.05 18:48) [13]


> PopupMenu не содержит ни метода Hide, ни свойства по которому
> можно отследить отображается он в данный момен или нет


Не содержит. Но оно рассылает сообщения...


 
Дмитрий_05   (2005-09-14 19:57) [15]

Игорь Шевченко, а не могли бы вы поделиться исходником?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.004 c
1-1126683715
vladimirov
2005-09-14 11:41
2005.10.02
испанские символы


1-1125990091
Monk
2005-09-06 11:01
2005.10.02
Двойное срабатывание события onMouseWheel


3-1124254178
rentgen
2005-08-17 08:49
2005.10.02
В SQL Выбрать из поле1 все значения начинающиеся на знач


1-1126445299
Дмитрий_05
2005-09-11 17:28
2005.10.02
Уменьшенная копия региона


1-1126704720
NetFlover
2005-09-14 17:32
2005.10.02
Проиграть по телефону музычку .... :)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский