Answers for "delphi do not allow form to be closed"

0

delphi do not allow form to be closed

type
  TForm1 = class(TForm)
  private
    fCloseButtonEnabled: Bool;
    procedure SetCloseButtonEnabled(const Value: Bool);
  public
    property CloseButtonEnabled: Bool read fCloseButtonEnabled write SetCloseButtonEnabled;
  end;
  
procedure TForm1.SetCloseButtonEnabled(const Value: Bool);
var
  hSysMenu: HMENU;
begin
  fCloseButtonEnabled := Value;
  hSysMenu:= GetSystemMenu(Self.Handle, False);
  if hSysMenu <> 0 then begin
    if Value then
      EnableMenuItem(hSysMenu, SC_CLOSE, MF_BYCOMMAND or MF_ENABLED)
    else
      EnableMenuItem(hSysMenu, SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);
    DrawMenuBar(Self.Handle);
  end;
end;

procedure TMain_Form.FormKeyDown(Sender: TObject; var Key: Word; shift: TShiftState);
begin
   if ((not fCloseButtonEnabled) and (Key = VK_F4) and (ssAlt in Shift)) then
      Key := 0;
end;
Posted by: Guest on June-24-2021

Browse Popular Code Answers by Language