Sys menulerinin çalıştırılması-silinmesi

Son güncelleme:
  • ...
    const
    SC_MyMenuItem1 = WM_USER + 1;
    ...
    procedure TForm1.btnAddClick(Sender: TObject);
    const
    sMyMenuCaption1='My n&ew system menu item';
    var
    SysMenu : HMenu;
    begin
    {Get system menu}
    SysMenu := GetSystemMenu(Handle, FALSE);
    {Add a seperator bar to main form-form1}
    AppendMenu(SysMenu, MF_SEPARATOR, 0, '');
    {add our menu}
    AppendMenu(SysMenu, MF_STRING,
    SC_MyMenuItem1, sMyMenuCaption1);
    end;




    ...
    private
    procedure WMSysCommand(var Msg: TWMSysCommand);
    message WM_SYSCOMMAND;
    ...
    procedure TForm1.WMSysCommand(var Msg:TWMSysCommand);
    begin
    if Msg.CmdType = SC_MyMenuItem1 then begin
    {some code to handle my menu item:}
    ShowMessage('My system menu 1 clicked!');
    end else
    inherited;
    end;




    procedure TForm1.btnDeleteClick(Sender: TObject);
    const
    MnuCommand = SC_MOVE;
    var
    SysMenu : HMenu;
    begin
    SysMenu := GetSystemMenu(Handle, FALSE);

    DeleteMenu(SysMenu, MnuCommand, MF_BYCOMMAND);
    end;





    procedure TForm1.btnChangeClick(Sender: TObject);
    const
    strCLOSE = '&Close This Window';
    var
    SysMenu : HMenu;
    MenuItemInfo : TMenuItemInfo;
    begin
    SysMenu := GetSystemMenu(Handle, FALSE);

    FillChar(MenuItemInfo,SizeOf(TMenuItemInfo), #0);
    MenuItemInfo.cbSize := SizeOf(TMenuItemInfo);
    MenuItemInfo.fMask := MIIM_TYPE or
    MIIM_ID or MIIM_STATE;
    MenuItemInfo.fType := MFT_STRING;

    MenuItemInfo.wId := SC_CLOSE;
    MenuItemInfo.dwTypeData := strCLOSE;
    MenuItemInfo.cch := Length(strCLOSE);

    SetMenuItemInfo(SysMenu, SC_CLOSE,
    FALSE, MenuItemInfo);
    end;
0 0 0
  • teşekkürler
0 0 0