Как выполнять дейтвия после исчезновения контекстного меню
Автор: i-s-v
Допустим, у вас на форме расположено контекстное меню PopupMenu1..
Выполнять действия сразу перед появлением меню просто, достаточно дописать код в обработчике события OnPopup этого меню. А как выполнять действия сразу после исчезновения меню?
Вот... Используйте вместо TPopupMenu и обрабатывайте событие OnHide...
unit MyExtPopupMenu;
(*
Обычное попап-меню, в котором добавлена возможность обработки события
при исчезновении менюшки...
Created by i-s-v (2004)
Visit my web-site http: //isv.iatp.org.ua
Kirovograg, Ukraine
*)
interface
uses
SysUtils, Classes, Menus;
type
TMyExtPopupMenu = class(TPopupMenu)
private
FOnHide: TNotifyEvent;
public
procedure Popup(X, Y: Integer); override;
protected
procedure DoHide(Sender: TObject); virtual;
published
property OnHide: TNotifyEvent read FOnHide write FOnHide;
end;
procedure Register;
implementation
procedure TMyExtPopupMenu.DoHide(Sender: TObject);
begin
if Assigned(FOnHide) then
FOnHide(Sender);
end;
procedure TMyExtPopupMenu.Popup(X, Y: Integer);
begin
inherited Popup(x, y);
DoHide(Self);
end;
procedure Register;
begin
RegisterComponents('Samples', [TMyExtPopupMenu]);
end;
end.
|