const My_MenuItem = $4000;Константу можете назвать по-своему и дать ей другой номер, но есть некоторые номера, которые зарезервированы Windows для собственных пунктов меню – не попадите на них.
Обязательно поместите в секцию private строку:
procedure HookSysCommand(var message: TwmSysCommand); message WM_SysCommand;
procedure TForm1.HookSysCommand(var message: TwmSysCommand);
begin
inherited;
case Message.CmdType of
My_MenuItem: ShowMessage('Пункт активизирован');
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
SysMenu: THandle;
begin
SysMenu := GetSystemMenu(Handle, False);
AppendMenu(SysMenu, mf_SEPARATOR, 0, #0);
AppendMenu(SysMenu, mf_BYPOSITION, My_MenuItem, 'Новый пункт');
{ AppendMenu добавляет новый пункт в конец, а для вставки своего пункта в другую
порядковую позицию воспользуйтесь InsertMenu. Пример:
InsertMenu(SMenu, 1, mf_BYPOSITION, My_MenuItem, 'Новый пункт'); }
end;
[Алексей]