Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по контекстному меню.   Найти похожие ветки 

 
i-s-v   (2004-02-16 22:34) [0]

Народ!
Помогите, плз!
Вопрос по контекстному меню.
При появлении меню отрабатывается событие OnPopup. А как зарегистрировать его исчезание???
Заранее благодарен.


 
Defunct   (2004-02-16 23:49) [1]

В модуле Menus, объявлена глобальная переменная PopupList:TPopupList, Туда попадают все PopupMenu и не только Popup, и именно этот объект "PopupList" решает когда убирать с экрана PopupMenu. Изучите класс TPopupList, найдите в нем закрытие PopupMenu (должно быть в процедуре WndProc), напишите свой класс в котором будет событие OnClose.


 
Defunct   (2004-02-17 01:19) [2]

Вопрос, зачем это отлавливать?


 
i-s-v   (2004-02-20 23:43) [3]

Сенькс!
Отлавливать нужно вот зачем:
есть форма, которая исчезает, если убрать с нее мышу. Контекстное меню может выходить за пределы формы. Чтообы удобно было, в событии OnPOPUP останавливаю таймер, который проверяет положение крысы. А при исчезании меню таймер снова должен стартовать...
Вот такая мура --)


 
i-s-v   (2004-02-29 20:28) [4]

А можно примерчик?
Промучался, нифига не получилось


 
Defunct   (2004-02-29 22:57) [5]

> А можно примерчик?

...
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
procedure PopupMenu1Popup(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
Open : Boolean ;
Procedure IdleMessage(var Message:tagMSG;var Handled:Boolean);
public
OnClosePopup : TNotifyEvent;
procedure PopupMenu1ClosePopup(Sender: TObject);
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Open := False;
OnClosePopup := PopupMenu1ClosePopup;
PopupMenu1.OnPopup := PopupMenu1Popup;
Application.OnMessage := IdleMessage;
end;

Procedure TForm1.IdleMessage;
Begin
With Message Do
Begin
If (Message>=WM_COMMAND) And Open Then
Begin
Open := False;
If Assigned(OnClosePopup) Then OnClosePopup(Self);
End;
End;
End;

procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
Caption := Format("%x",[LastMessage]);
ShowMessage("Меню отрылось");
Open := True;
end;

procedure TForm1.PopupMenu1ClosePopup(Sender: TObject);
begin
ShowMessage("Меню закрылось");
end;
...



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

Форум: "Основная";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.014 c
9-43238
Hyboid
2003-08-26 23:17
2004.03.14
Текстура на шаре


3-43299
MicroWorld
2004-02-11 22:47
2004.03.14
Запрос на 4 поля


1-43537
Rentgen
2004-02-28 08:44
2004.03.14
Line delete?


4-43936
Saimon
2004-01-07 02:47
2004.03.14
Помоготе по SysTray ю...


14-43750
Отшельник
2004-02-24 16:26
2004.03.14
Очень сильно нужна помощь.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский