Дважды щелкните правой кнопкой мыши, чтобы показать всплывающее меню с помощью TListView!

StackOverflow https://stackoverflow.com/questions/2402166

Вопрос

У меня есть 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top