private
procedure WMSysCommand(var Msg:TWMSYSCOMMAND);message WM_SYSCOMMAND;
--------------------------------------------------------------------
const //各メニューでつかう異なった値の定数を用意しておく
UserMenu1 =201;
UserMenu2 =202; //数字は適当
procedure TForm1.FormCreate(Sender: TObject);
var
hSysmenu :hMenu;
begin
//フォームのシステムメニューのハンドルを取得
hSysmenu :=GetSystemMenu(Handle, false);
//現在のメニューの1番下に追加
AppendMenu(hSysmenu, MF_STRING,UserMenu1, 'UserMenu1');
AppendMenu(hSysmenu, MF_STRING,UserMenu2, 'UserMenu2');
//セパレーター(区切り線)を今追加したメニューの上に追加
InsertMenu(hSysmenu, 6, MF_SEPARATOR or MF_BYPOSITION, 0, 0);
end;
//WM_SYSCOMMAND処理手続き
procedure TForm1.WMSYSCOMMAND(var msg :TWMSYSCOMMAND);
begin
//メッセージの内容で処理をわける
case msg.CmdType of
UserMenu1:showmessage('今押したのはUserMenu1です');
UserMenu2:showmessage('今押したのはUserMenu2です');
end;
inherited;//継承元の処理をおこなう
end; |