скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Системное меню приложения



Автор: Davyd

{ **** 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;





Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook