| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > не Down-кнопка |
| Автор: santilaas 27.10.2007, 12:29 |
| Привет всем! Вопрос такой: нужно (пожалуйста, не спрашивайте зачем) сделать так, чтобы кнопка SpeedButton не переходила в состояние Down, даже при клике (в момент клика) по ней. Как это сделать? Заранее спасибо! |
| Автор: Alix 27.10.2007, 12:34 |
| Enabled := false или просто сделать картинку с изображение отжатой кнопки |
| Автор: santilaas 27.10.2007, 15:55 |
| это не то, мне нужно, чтобы именно в момент клика на кнопку ничего (кроме того, что написано в OnClick-е) не происходило, т.е чтобы состояние кнопки до клика, в момент клика и после клика не менялось |
| Автор: VICTAR 27.10.2007, 16:03 |
| А нужна обязательно SpeedButton? |
| Автор: santilaas 28.10.2007, 13:27 |
| Желательно SpeedButton, ну на край сойдет и Toolbutton |
| Автор: lukas 28.10.2007, 20:49 |
| GroupIndex:=0, а сообствено по умолчанию она не обладает свойством переходить в down... |
| Автор: santilaas 29.10.2007, 03:46 | ||||
-
|
| Автор: Rennigth 29.10.2007, 10:04 |
| santilaas, А TPanel непойдет? |
| Автор: Alix 29.10.2007, 11:25 | ||
Можно вот так. Но может ты все же расскажешь, зачем оно надо?
|
| Автор: santilaas 29.10.2007, 11:28 | ||
- нет, объясню подробнее: вообще, на самом деле я хочу сделать свое PopupMenu, которое выпадает при щелчке по кнопке; делаю меню на основе отдельной формы без бордюра, форма открывается когда нужно и в нужном мне месте. НО возникли следующие проблемы: - из каких стандартных компонентов сделать что-либо похожее на пункты стандартного PopupMenu и притом чтобы при перемещении по пунктам - пункты подсвечивались другим цветом?; - как сделать чтобы моя форма-PopupMenu пряталась, когда пользователь нажимал бы кнопку мыши в другом (т.е не на самом меню) месте экрана? - сразу скажу OnDeactivate - не подходит - оно срабатывает только относительно моего приложения. - как сделать, чтобы моя форма-PopupMenu не отбирала фокус у главного окна приложения, вернее чтобы у главного окна всегда был фокус, а у формы-PopupMenu он появлялся только при её открытии? В общем в идеале должно получиться меню а-ля выпадающий список для непоместившихся значков в "панели быстрого запуска" в Winde |
| Автор: bober 30.10.2007, 17:21 | ||||
Так вы хотите сделать именно свое или вас не устраивает стандартное?
TLabel, для изменения цвета использовать события onMouseLeave, onMouseEnter |
| Автор: bems 30.10.2007, 17:47 |
| а чем не устраивает стандартное меню со своей отрисовкой? |
| Автор: Alix 30.10.2007, 18:20 |
| bems, http://forum.vingrad.ru/forum/topic-176267.html |
| Автор: santilaas 30.10.2007, 19:04 | ||||
- именно свое, хотя я его бы не делал, если бы в стандартном PopupMenu все было
- Alix, все верно - это мой топик |
| Автор: santilaas 31.10.2007, 07:33 | ||||||||
| с шириной списка вроде как разобрался - сделал так: свойство OwnerDraw поставил в True и для первого пункта меню в событии OnMeasureItem написал
- здесь, поскольку мое меню появляется при нажатии на кнопку, пишу в её OnClick-е так:
- 1) меню открывается, но в нем нет ни одного моего пункта (ранее созданного) - 2) пытался поставить аргумент lptpm вместо nil - Delphi ругается (Undeclared identifier)
- что это и как его применить - в какую процедуру определить? и еще - т.к. мой список-меню открывается при нажатии на кнопку, как сделать, чтобы при повторном нажатии на кнопку этот список закрывался? - посмотрел ссылочку - испробовал, но там что-то много чего работает не так, как мне нужно - и потом хотелось бы как-нибудь попроще все это реализовать. |
| Автор: bober 31.10.2007, 15:27 |
| Имхо лепить из чего то свое меню - избыточное изобретение велосипеда Посмотрите на этот пакет, там есть попап меню с кучей настроек может вам подойдет. SpTBXLib http://www.torry.net/authorsmore.php?id=6409 |
| Автор: bems 31.10.2007, 17:34 | ||||||
это фляжок для TrackPopupMenuEx, указывающий что меню показывается как контекстное для другого меню. Если делфи старая, то хелп тоже старый. Почитай описание TrackPopupMenuEx в MSDN из этой цитатыя сделал вывод, что нужно чтобы она закрывалось при щелчке в любом месте, а не только по кнопке. А что, если щелкаешь не по меню, то оно остатся? |
| Автор: santilaas 2.11.2007, 09:45 | ||||||||||
TMP_RECURSE мне ничего не дало
т.к. мой список-меню открывается при нажатии на кнопку, как сделать, чтобы при повторном нажатии на кнопку этот список закрывался? И потом - все-таки главное здесь - чтобы самостоятельно можно было регулировать открытие и закрытие PopupMenu - т.е. чтобы оно не закрывалось само при нажатии на него? |
| Автор: santilaas 5.11.2007, 17:20 |
| неужели больше никто не поможет?! |
| Автор: santilaas 9.11.2007, 17:33 |
| |