|
Impidiendo que el usuario cierre un formulario
Copyright © 2000 Ernesto
De Spirito
Pare evitar que el usuario pueda cerrar un formulario debemos
inhabilitar el botón Cerrar del formulario e inhabilitar también el menú
"Cerrar" del menú del sistema del formulario. Esto se logra llamando a
la función API EnableMenuItem (ver el ejemplo abajo).
No obstante, el usuario todavía puede cerrar el formulario
presionando Alt+F4, así que debemos asignar True a
la propiedad KeyPreview del formulario y escribir un manejador
de evento para el evento OnKeyDown y poder así anular esa
combinación de teclado:
uses Windows;
procedure TForm1.FormCreate(Sender: TObject);
var
hSysMenu: HMENU;
begin
hSysMenu := GetSystemMenu(Self.Handle, False);
if hSysMenu <> 0 then begin
EnableMenuItem(hSysMenu, SC_CLOSE,
MF_BYCOMMAND Or MF_GRAYED);
DrawMenuBar(Self.Handle);
end;
KeyPreview := True;
end;
procedure TForm1.FormKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if (Key = VK_F4) and (ssAlt in Shift) then
Key := 0;
end;
|