vasilius Опубликовано 18 января, 2019 Опубликовано 18 января, 2019 Здравствуйте Туплю видимо : не могу найти как сделать кнопку с выпадающим меню При нажатии ЛКМ на кнопку хочется чтобы появлялось меню Есть ли такой стандартный контрол. Перед тем как извращатся решил уточнить, чтобы не создавать велосипед Заранее спасибо Цитата
0 Andrey Yakovlev Опубликовано 18 января, 2019 Опубликовано 18 января, 2019 (изменено) Добрый день. Ну, например, так: procedure TMainForm.ButtonClick(Sender: TObject); begin PopupMenu.Popup(Screen.MousePos.X, Screen.MousePos.Y); end; Дополню нехитрый код комментарием: не видел в FMX кнопки с такой вот стрелочкой справа для вызова выпадающего меню. Была такая в VCL с отдельным свойством DropdownMenu. Может быть, плохо искал. Поэтому я, недолго думая, сделал у себя вызов меню по клику на саму кнопку. Думаю, что в desktop-версии вполне допустимо. Изменено 18 января, 2019 пользователем Andrey Yakovlev Цитата
0 vasilius Опубликовано 18 января, 2019 Автор Опубликовано 18 января, 2019 (изменено) Здравствуйте Спасибо. Это решение имеет право на жизнь , хоть и не очевидное (само решение) остановился на таком варианте, по данному предложенному варианту: TPointF pos = TPointF(0, btnBackup->Height + 1); pos = btnBackup->LocalToAbsolute(pos); pos = Screen->ActiveForm->ClientToScreen(pos); pmenBackup->Popup(pos.X, pos.Y); Если есть еще варианты - был бы рад Спасибо Изменено 18 января, 2019 пользователем vasilius Andrey Yakovlev 1 Цитата
0 Andrey Yakovlev Опубликовано 19 января, 2019 Опубликовано 19 января, 2019 Ну а что, вполне себе красиво. Я даже себе утащил ) А ClientToScreen можно и без обращения к Screen->ActiveForm вызвать, вы же и так в методе класса формы находитесь, будет на строчку короче pos = ClientToScreen(btnBackup->LocalToAbsolute(pos)); Цитата
0 vasilius Опубликовано 19 января, 2019 Автор Опубликовано 19 января, 2019 ну для форума важна же читабельность так-то и в одну строку можно уложить TPointF pos = ClientToScreen(btnBackup->LocalToAbsolute(TPointF(0, btnBackup->Height + 1))); pmenBackup->Popup(pos.X, pos.Y); Цитата
0 Andrey Yakovlev Опубликовано 20 января, 2019 Опубликовано 20 января, 2019 Да, согласен с вами. Цитата
Вопрос
vasilius
Здравствуйте
Туплю видимо : не могу найти как сделать кнопку с выпадающим меню
При нажатии ЛКМ на кнопку хочется чтобы появлялось меню
Есть ли такой стандартный контрол. Перед тем как извращатся решил уточнить, чтобы не создавать велосипед
Заранее спасибо
5 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.