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

Автор: Davyd
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Системное меню приложения

Если в HNDL указать Application.Handle, то меню добавиться к меню
при клике правой кнопокой мыши на панели задач.
Если Form1.Handle (или любая ваша форма и даже не ваша),
то к системному меню окна клик на иконке окна (слева сверху в углу).

Зависимости: SysUtils, Menus
Автор:       Davyd, davyd@pisem.net, ICQ:163118406, Самара
Copyright:   Собственное написание (Давид)
Дата:        4 апреля 2003 г.
***************************************************** }

procedure ExtendSysMenu(HNDL: THandle; AddMenu: TMainMenu);
var
  i: integer;
begin
  if (AddMenu = nil) or (HNDL = 0) then
    Exit; //Проверяем ссылку на объект

  AppendMenu(GetSystemMenu(HNDL, False),
    MF_SEPARATOR, 0, ''); //Добавляем разделитель

  with AddMenu do
    for i := 0 to Items.Count - 1 do
      AppendMenu(GetSystemMenu(HNDL, False),
        MF_POPUP, Items[i].Handle,
        PChar(Items[i].Caption));
end;

Пример использования:

//На форму кидаем MainMenu (компоненту)
procedure TForm1.FormCreate(Sender: TObject);
begin
  ExtendSysMenu(Application.Handle, MainMenu1);
  ExtendSysMenu(Form1.Handle, MainMenu1);
end;
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования