![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
PopupMenu и свой компонент
Matveih1 © (2011-03-30 11:55:00)Добрый день.
Подскажите как к своему компоненту прикрутить PopupMenu.
Компонент представляет из себя маленький редактор, и надо что бы меню вызывалось только на определенных фигурах, которые расположены в разных местах. Фигуры рисуются прям в компоненте. Определить над чем сейчас мышь, могу, а вот как позвать PopupMenu если она над нужной фигурой не могу сообразить.
Matveih1 (2011-03-30 14:34:00) [1]
> clickmaker © (30.03.11 14:16) [7]
>
> procedure DoContextPopup(MousePos: TPoint; var Handled:
> Boolean); override;
> begin
> if not // какието есловия
> Handled := true;
> end;
Спасибо, помогло.
clickmaker (2011-03-30 14:16:00) [2]procedure DoContextPopup(MousePos: TPoint; var Handled: Boolean); override;
begin
if not // какието есловия
Handled := true;
end;
Matveih1 (2011-03-30 14:13:00) [3]Я понимаю, но я никаких обработчиков не писал, а уже все работает т.е. меню появляется
вот кусок компонента
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;
Anatoly Podgoretsky (2011-03-30 14:01:00) [4]Ну зови только в тех местах, ведь никто не запрещает.
Matveih1 (2011-03-30 12:03:00) [5]Не понимаю. Я объявил
property PopupMenu;
Сослался на PopupMenu и теперь меню зовется всегда, в любом месте компонента, а мне надо звать только в определенных. Если туплю то поправьте
Matveih1 (2011-03-30 11:59:00) [6]
> PM.Popup()
-- не понял, можно подробней
Германн (2011-03-30 11:58:00) [7]
> а вот как позвать PopupMenu
MyPopupMenu.Popup не?
clickmaker (2011-03-30 11:56:00) [8]PM.Popup()