YES czy NO to i tak zamyka program :/ (Application.Mess...))

0

Witam
Ten kod mi zamyka program czy dam na YES, czy też na NO i już nie wiem jak to naprawić :/
Ma zamykać program jeśli dam tylko na YES. Co zrobiłem źle?

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Application.MessageBox('Czy napewno wyjść z programu?','Wyjście',
MB_IconQuestion or MB_YESNO)=IDYES then
Application.Terminate;
end;
0

W tej sytuacji Forama Ci się zamyka (FormClose) jesli dałeś taki warunek czy chcesz zamknąć to w momencie naciśnięcia YES zamyka Ci sie ale w momencie gdy naciśniesz NO to nie masz żadnej procedury która by to odwoływała, program leci dalej z że jest w proceduże zamykania okna to też je zamyka...

0

umieść to w canclose i zamiast application terminate daj CanClose:=answer=IDYES; proste

0

Nawet to nie działa poprawnie :/

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if Application.MessageBox('Czy napewno wyjść z programu?','Wyjście',
MB_IconQuestion or MB_YESNO)=IDYES then
Application.Terminate;
end;

A jaką akcję napisać pod NO?

0

w onclosequery daj

canclose:= (MessageBox(0,,,MB_YESNO)=ID_YES)

0

umieść to w procedurze zamkniecie - przez siebie stworzonej wowczas nie amsz problemu z odwolywanie, lub napisz procedure onclose

0

Dzięki wieprz :)
Dopiero to normalnie zadziałało.

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose:= (MessageBox(0,'Czy napewno wyjść z programu?','Wyjście',MB_IconQuestion + MB_YESNO)=ID_YES);
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1