Zamknięcie aplikacji

mcstar
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 13 lat
  • Postów:11
0

Mam jeszcze jedno pytanko. Jak tworzy się forma to standardowo są na niej 3 guziczki (minimalizuj, maksymalizuj oraz zamknij aplikację), mam pytanko jak wykryć że ktoś nacisnął kuziczek: zamknij aplikację i w tedy wyświetlić jakiś komunikat (np.: czy chcesz zamknąć program? - a jeśli odpowie, że nie to program ma nadal działać). Sorrki jeśli to głupie pytanie, do tej pory wyłanczalem te ikonki i wstawiałem guziczek "zamknij program" - no ale trzeba powiększać wiedzę wieć się pytam :-)


Pozdrawiam
Marcin
lofix
  • Rejestracja:około 23 lata
  • Ostatnio:około miesiąc
  • Lokalizacja:Wdzydze
0

w OnClose dajesz warunek (MessageDialog) i zaleznie kto co wybierze to wykonujsze..

Kopiuj
If Application.MessageBox('Czy napewno chcesz zakonczyc?', 'UWAGA',MB_YESNO+MB_ICONWARNING) = ID_YES Then
begin
Application.Terminate;
end else begin
Exit;
end;

Pozdrawiam. Karol
mcstar
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 13 lat
  • Postów:11
0

w OnClose dajesz warunek (MessageDialog) i zaleznie kto co wybierze to wykonujsze..

Kopiuj
If Application.MessageBox('Czy napewno chcesz zakonczyc?', 'UWAGA',MB_YESNO+MB_ICONWARNING) = ID_YES Then
begin
Application.Terminate;
end else begin
Exit;
end;

I wszystko prawie działa, faktycznie po naciśnięciu "X" pojawia się zapytanie, jednak nie zależnie od dokonanego wyboru program się zamyka!


Pozdrawiam
Marcin
MatroX
  • Rejestracja:około 22 lata
  • Ostatnio:prawie 11 lat
0

W OnCloseQuery:

CanClose := Application.MessageBox('Czy na pewno chcesz zakonczyc?', 'UWAGA',MB_YESNO+MB_ICONWARNING) = ID_YES;

RaBBiT
  • Rejestracja:prawie 22 lata
  • Ostatnio:ponad 20 lat
0

W TMainMenu np Zakmnij :

Kopiuj
 
procedure TFormaGlowna.ZakonczClick(Sender: TObject);
begin
Close;
end; 

oraz

Kopiuj
procedure TFormaGlowna.FormClose(Sender: TObject;  var Action: TCloseAction);
begin 
    if Application.MessageBox('Napewno chcesz zakończyć program?','Wyjście',
     MB_IconQuestion + MB_YESNO) = idYES then
    Action := caFree
  else
    Action := caNone;
end; 
JU
  • Rejestracja:około 22 lata
  • Ostatnio:2 miesiące
  • Postów:5042
0
Kopiuj
procedure TFormaGlowna.FormClose(Sender: TObject;  var Action: TCloseAction);

TO MUSI BYĆ OnCloseQUERY!!!

RaBBiT
  • Rejestracja:prawie 22 lata
  • Ostatnio:ponad 20 lat
0

TO MUSI BYĆ OnCloseQUERY!!!

Jest duzo mozliwosci, widocznie tylko mi sie wydaje ze moj program dziala :-) . Moze kiedys dojde ze moj program w ogóle sie nie zamyka i w ogóle nie zgalasza komunikatu.

Mozna rowniez zdefiniowac TActionList, i odpowiednio oprogramowac. Rozwiazan jest duzo - wazne aby byly skuteczne i bezbledne.

[cya]

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.