Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2012, 17:54   #1
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
По умолчанию Кликаем по Listview...

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

Пишу программу (использую только VCL), на единственной форме которой есть ListView, который заполняется динамически.
При обработке отпускания мыши над ListView (ListView OnMouseUp) требуется определить кнопку, которую нажали и, если это правая кнопка мыши, то вывести определенный текст.

При клике на областях ListView, не занятых элементами, все работает корректно. Однако если раз кликнуть на элементе ListView, это событие не срабатывает (а если щелкнуть дважды - все-таки происходит, и меню появляется).

Пока использую обработчик OnMouseDown, так что проблема с OnMouseUp остается...

Как быть, что делать?
Программирую по необходимости
tsar_ вне форума Ответить с цитированием
Старый 25.01.2012, 13:51   #2
alexiz
Пользователь
 
Регистрация: 19.08.2010
Сообщений: 54
По умолчанию

Цитата:
Сообщение от tsar_ Посмотреть сообщение
..если щелкнуть дважды - все-таки происходит, и меню появляется).
Так меню или текст?
Ваша благодарность может быть материальной:
WM R103871054215, WM Z710411027344, ЯндД: 410011167596676
alexiz вне форума Ответить с цитированием
Старый 25.01.2012, 16:31   #3
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
По умолчанию

Цитата:
Так меню или текст?
И то, и то .
В принципе, желаемого результата добился через обработчик OnContextPopup (оказалось просто до немогу ).

Из спортивного интереса полез бороздить просторы Интернета в надежде накопать чего по поводу OnMouseUp у ListView. Нашел вариант реализации через обработку WM_NOTIFY (комментировать и тем более оценивать этот вариант не буду по причине некоторой безграмотности по обработке сообщений):
Код:
procedure TForm1.WMNotify(var Msg: TWMNotify);
begin
 if (Msg.NMHdr.idFrom = ListView1.Handle) and (Msg.NMHdr.code = -5) then
  begin
    // Здесь обрабатывается отпускание правой кнопки мыши над ListView1
  end;
  inherited;
end;
Программирую по необходимости
tsar_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перетащить элемент ListView в другой ListView? Paul Hindenburg Компоненты Delphi 5 26.01.2013 11:35
ListView в VB 6.0 Cannibal Помощь студентам 0 26.05.2011 14:55
[C# + WPF] ListView. Узнать выделена ли строка в нём. ListView.View == GridView. Casper-SC WPF, UWP, WinRT, XAML 2 12.08.2010 19:04
Кликаем по эллементу, полочаем хендл, скрываем :) Pirotexnik Общие вопросы C/C++ 3 06.06.2010 22:44