Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2008, 22:50   #1
Bill Gates
Пользователь
 
Аватар для Bill Gates
 
Регистрация: 23.11.2007
Сообщений: 26
Стрелка Как вызвать TPopupMenu на TButton с помощи левой кнопки мыши?

Как вызвать TPopupMenu на TButton с помощи левой кнопки мыши?
Bill Gates вне форума Ответить с цитированием
Старый 18.01.2008, 22:58   #2
Никки
Форумчанин Подтвердите свой е-майл
 
Аватар для Никки
 
Регистрация: 20.11.2007
Сообщений: 500
По умолчанию

ну в процедуре обработки нажатия TButton напиши

Код:
Var
        p:tpoint;
begin
        GetCursorPos(p);
        PopupMenu.Popup(p.X,p.Y);
Никки вне форума Ответить с цитированием
Старый 19.01.2008, 00:00   #3
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,238
Сообщение

Но ведь есть же программы, где после нажатия на кнопку появляется меню под или над ней(в зависимости как близко к краям экрана она находится) и кнопка остаётся нажатой, до тех пор пока менюшка неисчезнет. Как такое реализовано. Может кто знает про это. Интересно же.
Alter вне форума Ответить с цитированием
Старый 19.01.2008, 01:01   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Alter Посмотреть сообщение
Но ведь есть же программы, где после нажатия на кнопку появляется меню под или над ней(в зависимости как близко к краям экрана она находится) и кнопка остаётся нажатой, до тех пор пока менюшка неисчезнет. Как такое реализовано. Может кто знает про это. Интересно же.
Просто использовать нужно SpeedButton, а обработчик ставить на событие OnMouseUp.
mihali4 вне форума Ответить с цитированием
Старый 06.02.2008, 09:31   #5
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,238
Сообщение

Вот так всё время делать ? Может проще есть способ.

Код:
procedure TForm1.SpeedButton1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 SpeedButton1.Down := True;
 PopupMenu1.Popup( SpeedButton1.Left + Left + 2,
                   SpeedButton1.Top + 2*SpeedButton1.Height + Top - 2 );
end;

procedure TForm1.N1Click(Sender: TObject);
begin
 SpeedButton1.Down := True;
end;
Alter вне форума Ответить с цитированием
Старый 06.02.2008, 09:51   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Для тулбатона я так делал, думаю подойдет и для обычного.
Код:
procedure TForm1.ToolButton1Click(Sender: TObject);
var
  MP: TPoint;
begin
mp.x:=toolbutton1.left;
mp.y:=toolbutton1.top+toolbutton1.height;
PopupMenu1.Popup(ClientToScreen(mp).x,ClientToScreen(mp).y);
end;
P.S. А вообще не, не подойдет. Нужен SpeedButton, делай группу они сами будут нажиматься, у тебя же не одна кнопка?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 06.02.2008 в 09:56.
mutabor вне форума Ответить с цитированием
Старый 08.06.2010, 14:27   #7
Jakero
Новичок
Джуниор
 
Регистрация: 08.06.2010
Сообщений: 3
Вопрос

А как PopupMenu по правой кнопке в RichEdit вызвать?
Jakero вне форума Ответить с цитированием
Старый 08.06.2010, 14:28   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,003
По умолчанию

во первых я вам ответил.
во вторых правила почитайте.(не лезьте в чужую тему)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PopupMenu левой кнопкой мыши Pinya Компоненты Delphi 3 22.08.2008 19:23
Компонент TButton... slim5 Помощь студентам 7 17.06.2008 17:58
Multiselect в dbgrid только при помощи мыши Ary Компоненты Delphi 2 09.04.2008 15:26
Рисование на Canvas при нажатии левой кнопки мыши. Ветас Помощь студентам 3 11.11.2007 22:02
Отловить нажатие левой кнопки мыши на р листе SAndrus Microsoft Office Excel 2 14.07.2007 13:13