Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.07.10;
Скачать: CL | DM;

Вниз

PopupMenu и свой компонент   Найти похожие ветки 

 
Matveih1 ©   (2011-03-30 11:55) [0]

Добрый день.

Подскажите как к своему компоненту прикрутить PopupMenu.
Компонент представляет из себя маленький редактор, и надо что бы меню вызывалось только на определенных фигурах, которые расположены в разных местах. Фигуры рисуются прям в компоненте. Определить над чем сейчас мышь, могу, а вот как позвать PopupMenu если она над нужной фигурой не могу сообразить.


 
clickmaker ©   (2011-03-30 11:56) [1]

PM.Popup()


 
Германн ©   (2011-03-30 11:58) [2]


> а вот как позвать PopupMenu

MyPopupMenu.Popup не?


 
Matveih1 ©   (2011-03-30 11:59) [3]


> PM.Popup()
 -- не понял, можно подробней


 
Matveih1 ©   (2011-03-30 12:03) [4]

Не понимаю. Я объявил
property PopupMenu;

Сослался на PopupMenu и теперь меню зовется всегда, в любом месте компонента, а мне надо звать только в определенных. Если туплю то поправьте


 
Anatoly Podgoretsky ©   (2011-03-30 14:01) [5]

Ну зови только в тех местах, ведь никто не запрещает.


 
Matveih1 ©   (2011-03-30 14:13) [6]

Я понимаю, но я никаких обработчиков не писал, а уже все работает т.е. меню появляется
вот кусок компонента

TMay = class(TCustomControl)
 published
   property PopupMenu;


И все, я в свойстве выбрал popup и он уже работает разу во всех местах компонента. Хотя я обработчиков не писал. Вопрос как запретить меню работать по умолчанию, а работать только по событию

WMRButtonDown(var Msg: TWMMose);
begin
 inherited;

 if PopupMenu <> nil then
 begin
   ... // какието есловия
   PopupMenu.Popup(Msg.Xpos, Msg.YPos);
 end;
end;


 
clickmaker ©   (2011-03-30 14:16) [7]

procedure DoContextPopup(MousePos: TPoint; var Handled: Boolean); override;
begin
 if not // какието есловия
   Handled := true;
end;


 
Matveih1 ©   (2011-03-30 14:34) [8]


> clickmaker ©   (30.03.11 14:16) [7]
>
> procedure DoContextPopup(MousePos: TPoint; var Handled:
> Boolean); override;
> begin
>  if not // какието есловия
>    Handled := true;
> end;

Спасибо, помогло.



Страницы: 1 вся ветка

Текущий архив: 2011.07.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.005 c
2-1301635425
mefodiy
2011-04-01 09:23
2011.07.10
Не работает режим "full screen"


2-1301672845
istok
2011-04-01 19:47
2011.07.10
TidTransaction


15-1301355051
KilkennyCat
2011-03-29 03:30
2011.07.10
как-то мы о много-мониторности говорили...


15-1301344197
Юрий
2011-03-29 00:29
2011.07.10
С днем рождения ! 29 марта 2011 вторник


15-1300829404
Юрий
2011-03-23 00:30
2011.07.10
С днем рождения ! 23 марта 2011 среда