Hola, debes colocar el Action de tu evento OnClose en caNone.
Código Delphi
[-]
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if button3.Visible=false then
begin
Action:=caNone;
showmessage('Debes cerrar tu nota de venta antes de salir');
end;
Saluditos