Delphi World - Как выполнять дейтвия после исчезновения контекстного меню
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Как выполнять дейтвия после исчезновения контекстного меню

Автор: 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.
Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay