Акжан в сети - На уровень вверх(API) Как запретить кнопку Close [x] в заголовке окна?

Вот кусок, который делает все, что тебе нужно:

procedure TForm1.FormCreate(Sender: TObject);
var
  Style: Longint;
begin
  Style := GetWindowLong(Handle, GWL_STYLE);
  SetWindowLong(Handle, GWL_STYLE, Style And Not WS_SYSMENU);
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if (Key = VK_F4) and (ssAlt in Shift) then
  begin
    MessageBeep(0);
    Key := 0;
  end;
end;

Alexander Petrushev

(2:5001/88.10)

{ Disable close button }
procedure TForm1.Button1Click(Sender: TObject);
var
  SysMenu: HMenu;
begin
  SysMenu := GetSystemMenu(Handle, False);
  Windows.EnableMenuItem(SysMenu, SC_CLOSE, MF_DISABLED or MF_GRAYED);
end;

{ Enable close button }
procedure TForm1.Button2Click(Sender: TObject);
begin
  GetSystemMenu(Handle, True);
  Perform(WM_NCPAINT, Handle, 0);
end;

Но это окно можно закрыть из TaskBar'а.

Vlad Filyakov

(2:5022/26.9)