Хобрук: Ваш путь к мастерству в программировании

TW7ToolButton - добавить выпадающее меню

Согласно TMS, W7ToolButton1 можно использовать для отображения раскрывающегося меню. Но я не понимаю, как вы можете это сделать, поскольку у него нет свойства раскрывающегося меню. Единственное меню, которое я могу добавить, это всплывающее меню, которое не то же самое, что раскрывающееся. Кто-то знает, как добавить раскрывающееся меню к кнопке ??? Я могу добавить к кнопке стрелку раскрывающегося списка, но это загадка, как сделать так, чтобы всплывающее меню отображалось при нажатии этой стрелки (при условии, что она работает таким образом) ...

15.01.2014

Ответы:


1

TW7ToolButton, похоже, не имеет события для нажатия на стрелку разделенной кнопки, поэтому это может быть лучшее, что вы можете сделать с текущей версией компонента:

procedure TForm1.W7ToolButton1Click(Sender: TObject);
var
  iPoint: TPoint;
begin
  iPoint := ClientToScreen(Point(W7ToolButton1.Left, W7ToolButton1.Top + W7ToolButton1.Height));
  PopupMenu1.Popup(iPoint.X, iPoint.Y);
end;

Меню появится под кнопкой, как раскрывающееся меню.

15.01.2014
  • Да, я полагаю, это единственный способ сделать это. Спасибо! 16.01.2014

  • 2

    Я не знаком с TMS, однако с обычной кнопкой / кнопкой скорости вы можете использовать что-то вроде:

    PopupMenu1.Popup (Form1.Left + SpeedButton1.Left + SpeedButton1.Height, Form1.Top + SpeedButton1.Top + SpeedButton1.Width);
    
    15.01.2014
  • почему бы не использовать TWinControl.ClientToScreen? 15.01.2014
  • Для TButton есть значение bsSplitButton для свойства Style и свойства DropDownMenu в Delphi XE4, поэтому ничего из этого не требуется. То же самое, возможно, применимо даже к Delphi 2009 в this Q&A. Но все же TMS может сделать это по-другому ... 15.01.2014
  • Есть и другие компоненты, которые я могу использовать (Raize - RzMenuToolbarButton1), но меня интересует компонент TMS. 15.01.2014
  • Новые материалы

    Понимание структуры каталогов Linux
    Структура каталогов Linux — это иерархическая организация файлов и каталогов в системе Linux. Понимание этой структуры важно для всех, кто хочет использовать Linux в качестве основной..

    Введение в SQLite3 в Python
    SQLite3 — это популярная и часто используемая программная библиотека для управления реляционными базами данных. Она портативна, быстра и проста в использовании, что делает ее отличным выбором..

    Как создать ORM в Node.js
    Что такое ОРМ? Проще говоря, система ORM — это метод, в котором вы используете объектно-ориентированную парадигму для создания сопоставления между приложением и базой данных для выполнения..

    Руководство для начинающих по обработке естественного языка .
    Обработка естественного языка — захватывающая и быстро развивающаяся область, которую можно охарактеризовать как сочетание лингвистики, информатики и искусственного интеллекта. Это помогает..

    Защитите свое приложение NodeJS с помощью веб-токенов JSON (JWT): руководство по аутентификации на основе токенов
    В современном мире веб-приложений безопасность важнее, чем когда-либо. Одним из наиболее важных аспектов защиты веб-приложений является аутентификация пользователей. Аутентификация на основе..

    Вводное руководство по аннотациям @PreAuthorize и @PostAuthorize в Spring Security
    Введение Spring Security — это мощная и настраиваемая среда аутентификации и контроля доступа для приложений Java, особенно тех, которые созданы с использованием среды Spring. Этот пост..

    От стартапов к успеху в индустрии наук о данных: 5 важных инструментов
    Постоянно растущие объемы данных сегодня играют решающую роль для каждой компании, которая хочет оставаться на вершине. Это означает использование технологий искусственного интеллекта ,..