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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2011, 12:37   #1
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию Как вызвать Popup Menu левой кнопой мыши?

Вопрос простой, но что-то не соображу..
Dux вне форума Ответить с цитированием
Старый 19.08.2011, 13:06   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ловить нажатие девой кнопки и метод PopupMenu.Popup
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 19.08.2011, 13:11   #3
DenNik2006
Пользователь
 
Аватар для DenNik2006
 
Регистрация: 27.07.2011
Сообщений: 71
По умолчанию

Код:
procedure TForm2.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  p: TPoint;
begin
  if Button = mbLeft then
  begin
    p:= Panel1.ClientToScreen(Point(X,Y));
    PopupMenu1.Popup(p.x,p.Y);
  end;
end;
Техника несовершенна: компьютеру, чтобы прийти в себя, нужно три пальца, человеку - всего два!
DenNik2006 вне форума Ответить с цитированием
Старый 19.08.2011, 13:14   #4
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от DenNik2006 Посмотреть сообщение
Код:
procedure TForm2.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  p: TPoint;
begin
  if Button = mbLeft then
  begin
    p:= Panel1.ClientToScreen(Point(X,Y));
    PopupMenu1.Popup(p.x,p.Y);
  end;
end;
Попробуем..

Последний раз редактировалось Dux; 19.08.2011 в 13:17.
Dux вне форума Ответить с цитированием
Старый 19.08.2011, 13:15   #5
DenNik2006
Пользователь
 
Аватар для DenNik2006
 
Регистрация: 27.07.2011
Сообщений: 71
По умолчанию

Цитата:
Сообщение от Dux Посмотреть сообщение
А можно ли комментарий к вашему коду? Немного не вьехал по поводу строки p:= Panel1.ClientToScreen(Point(X,Y)); Причем здесь панель?
это пример вызова меню при щелчке на панели
p:= Panel1.ClientToScreen(Point(X,Y)); переводит координаты мыши относительно панели в координаты экрана, которые передаются в метод PopupMenu1.Popup
Техника несовершенна: компьютеру, чтобы прийти в себя, нужно три пальца, человеку - всего два!
DenNik2006 вне форума Ответить с цитированием
Старый 19.08.2011, 13:24   #6
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Попробовал, однако это не совсем то, что мне нужно. Дело в том, что это меню должно появляться только при щелчке на определенной ячейке в DBGrid.
А теперь оно стало появляться в любом месте формы.
Dux вне форума Ответить с цитированием
Старый 19.08.2011, 13:35   #7
DenNik2006
Пользователь
 
Аватар для DenNik2006
 
Регистрация: 27.07.2011
Сообщений: 71
По умолчанию

Обработать SelectSell грида, если выбранная ячейка нужная, вызываем меню, для получения координат мышА юзаем GetCursorPos или Mouse.CursorPos
Техника несовершенна: компьютеру, чтобы прийти в себя, нужно три пальца, человеку - всего два!
DenNik2006 вне форума Ответить с цитированием
Старый 19.08.2011, 13:38   #8
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от DenNik2006 Посмотреть сообщение
Обработать SelectSell грида, если выбранная ячейка нужная, вызываем меню, для получения координат мышА юзаем GetCursorPos или Mouse.CursorPos
Ок, спасибо!
Dux вне форума Ответить с цитированием
Старый 19.08.2011, 13:40   #9
DenNik2006
Пользователь
 
Аватар для DenNik2006
 
Регистрация: 27.07.2011
Сообщений: 71
По умолчанию

пардон, не знал что у DBGrid нет OnSelectSell!
тогда наверное OnCellClick
Техника несовершенна: компьютеру, чтобы прийти в себя, нужно три пальца, человеку - всего два!
DenNik2006 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вызвать TPopupMenu на TButton с помощи левой кнопки мыши? Bill Gates Общие вопросы Delphi 7 08.06.2010 14:28
Процедура в динамички созданном popup menu Magixxx Общие вопросы Delphi 2 27.05.2009 21:30
Popup menu в таблице Access crazybabushka БД в Delphi 3 09.08.2008 12:09
Popup menu Mitron Компоненты Delphi 1 02.02.2008 14:26