потому что надот делать по другому.
по нажатию кнопки выход надо сделать только close;
А вот в OncloseQuery надо сделать что-то типа:
Код:
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := MessageDlg('Are you sure to close the program?',
mtConfirmation,[mbYes,mbNo],0) = mrYes;
end;