Дважды щелкните правой кнопкой мыши, чтобы показать всплывающее меню с помощью TListView!
-
18-09-2019 - |
Вопрос
У меня есть TListView и TPopupMenu, и я хочу, чтобы при щелчке правой кнопкой мыши по TListItem отображалось контекстное меню.Я попробовал «AutoPopup», назначив компонент, но при щелчке правой кнопкой мыши отображается только PopupMenu, а нужный элемент не выбирается.Итак, я попытался использовать «OnMouseDown», но нам нужно щелкнуть и щелкнуть еще раз, чтобы отобразить меню нужного элемента.Первый щелчок предназначен для выбора элемента, а второй показывает меню.Но мне нужен всего один щелчок, чтобы сделать две вещи.Есть ли у вас представление о проблеме?
Спасибо.
Решение 3
Задача решена.Как и ожидалось, я использовал tpoPupactionAbar, поэтому при использовании Tpopupmenu должен пользователь простой Tpopupmenu, без проблем!(Извините за мой плохой английский!) Спасибо.
Другие советы
Я считаю, что этот код решает проблему:
procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then
ListBox1.Perform(WM_LBUTTONDOWN, 0, MakeLParam(Word(X), Word(Y)));
end;
Сначала добавьте TPopUpMenu в свою форму и определите элементы, которые вы хотите отображать в ней (в Delphi 2010 дважды щелкните значок всплывающего меню, чтобы войти в редактор элементов).
Во-вторых, установите элемент PopUpMenu в TListView на вновь созданный TPopUpMenu.
Если оба они настроены правильно, когда вы щелкнете правой кнопкой мыши по TListView, вы увидите определенные элементы и запустите их из события On-Click.