Перейти к содержанию
Fire Monkey от А до Я
  • 0

Кнопка с выпадающим меню


vasilius

Вопрос

Опубликовано

Здравствуйте

Туплю видимо : не могу найти как сделать кнопку с выпадающим меню

При нажатии ЛКМ на кнопку хочется чтобы появлялось меню

Есть ли такой стандартный контрол.  Перед тем как извращатся решил уточнить, чтобы не создавать велосипед

Заранее спасибо

 

 

Рекомендуемые сообщения

  • 0
Опубликовано (изменено)

Добрый день. Ну, например, так:

procedure TMainForm.ButtonClick(Sender: TObject);
begin
    PopupMenu.Popup(Screen.MousePos.X, Screen.MousePos.Y);
end;


Дополню нехитрый код комментарием: не видел в FMX кнопки с такой вот стрелочкой справа для вызова выпадающего меню. Была такая в VCL с отдельным свойством DropdownMenu. Может быть, плохо искал. Поэтому я, недолго думая, сделал у себя вызов меню по клику на саму кнопку. Думаю, что в desktop-версии вполне допустимо.

Изменено пользователем Andrey Yakovlev
  • 0
Опубликовано (изменено)

Здравствуйте

Спасибо. Это решение имеет право на жизнь , хоть и не очевидное (само решение)

остановился на таком варианте, по данному предложенному варианту:

  TPointF pos = TPointF(0, btnBackup->Height + 1);
  pos = btnBackup->LocalToAbsolute(pos);
  pos = Screen->ActiveForm->ClientToScreen(pos);
  pmenBackup->Popup(pos.X, pos.Y);
 

Если есть еще варианты - был бы рад 

 

Спасибо

Изменено пользователем vasilius
  • 0
Опубликовано

Ну а что, вполне себе красиво. Я даже себе утащил )

А ClientToScreen можно и без обращения к Screen->ActiveForm вызвать, вы же и так в методе класса формы находитесь, будет на строчку короче

pos = ClientToScreen(btnBackup->LocalToAbsolute(pos));

  • 0
Опубликовано

ну для форума важна же читабельность 

так-то и в одну строку можно уложить

  TPointF pos = ClientToScreen(btnBackup->LocalToAbsolute(TPointF(0, btnBackup->Height + 1)));
  pmenBackup->Popup(pos.X, pos.Y);

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...