15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как скрыть кнопку "х" в заголовке окна.

Автор: Fernando Silva

Пример показывает, как при инициализации формы происходит поиск нашего окна, а затем вычисление местоположения нужной нам кнопки в заголовке окна.

Совместимость: Delphi (все версии)


  procedure TForm1.FormCreate(Sender: TObject);
  var
    hwndHandle: THANDLE;
    hMenuHandle: HMENU;
    iPos: Integer;
  
  begin
    hwndHandle := FindWindow(nil, PChar(Caption));
  
    if (hwndHandle <> 0) then
    begin
      hMenuHandle := GetSystemMenu(hwndHandle, FALSE);
      if (hMenuHandle <> 0) then
      begin
        DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);
        iPos := GetMenuItemCount(hMenuHandle);
        Dec(iPos);
        { Надо быть уверенным, что нет ошибки т.к. -1 указывает на ошибку }
        if iPos > -1 then
          DeleteMenu(hMenuHandle, iPos, MF_BYPOSITION);
      end;
    end;
  end;