Главная страница
    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.46 MB
Время: 0.013 c
9-43235
mrAld
2003-08-27 15:08
2004.03.14
Яркость экрана


6-43725
RaVeX
2004-01-06 08:41
2004.03.14
проблема с кодировкой файлов аттачей при их сохранении (Indy)


3-43367
ceval
2004-02-15 14:41
2004.03.14
Как открыть несколько таблиц в DBGrid


1-43592
MasterKolyan
2004-02-27 12:11
2004.03.14
Пересылка значений между нетипизированными указателями


1-43470
TAV
2004-02-29 18:43
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский