ďťż

Ładny brzuch

Witam.
Chciałbym w moim programie zrobić pytanie przy zamykaniu (tzn. MessageBox z przyciskami Tak i Nie) czy chcesz na pewno zamknąć program. Podejrzewam, że trzeba zrobić Message Boxa w zdażaeniu OnClose formy głównej, ale co zrobić, zeby po wcisnieciu na Nie program nie zamykał się ? Proszę o pomoc.

Co masz zrobić dziś, zrób po jutrze, będziesz miał 2 dni wolnego ;)

GG: 2369033



cytat:Balcerowicz napisał:
Podejrzewam, że trzeba zrobić Message Boxa w zdażaeniu OnClose formy głównej, ale co zrobić, zeby po wcisnieciu na Nie program nie zamykał się ?

Musisz anulować polecenie zamknięcia - możesz to zrobić np. tak:

if Application.MessageBox('Jesteś tego pewny ?', 'Potwierdzenie', MB_YESNO) = IDNO then Action := caNone;

ICQ : 245-363-570
TLEN: oxisoft

Może też być inaczej:

procedure TForm1.Button1Click(Sender: TObject);
begin
if MessageBox(Form1.Handle,'Czy chcesz wyjsc?','Potwierdzenie',mb_yesno)=idyes then
close;
end;

pozdrawiam
kind
gg: 1482111

cytat:Kind_Pax napisał:

Może też być inaczej:

procedure TForm1.Button1Click(Sender: TObject);
begin
if MessageBox(Form1.Handle,'Czy chcesz wyjsc?','Potwierdzenie',mb_yesno)=idyes then
close;
end;

Application.MessageBox jest równoważne z MessegBox w którym dajesz Form1.Handle (właściwie to Application.Handle).
Co do samego kodu to jes OK - ale nie dokładnie o to chodziło Balcerowiczowi - pytaie miało się pojawiać przy próbie zamknięcia programu (każdej).

ICQ : 245-363-570
TLEN: oxisoft



cytat:Oxi napisał:

cytat:Balcerowicz napisał:
Podejrzewam, że trzeba zrobić Message Boxa w zdażaeniu OnClose formy głównej, ale co zrobić, zeby po wcisnieciu na Nie program nie zamykał się ?

Musisz anulować polecenie zamknięcia - możesz to zrobić np. tak:

if Application.MessageBox('Jesteś tego pewny ?', 'Potwierdzenie', MB_YESNO) = IDNO then Action := caNone;

ICQ : 245-363-570
TLEN: oxisoft

Dzięki Oxi, jesteś wielki :)

Co masz zrobić dziś, zrób po jutrze, będziesz miał 2 dni wolnego ;)

GG: 2369033

Zgadzam się z powyższymi, ale tutaj także można zastosować procedurę ShowModal.

Jak chcesz wiedzieć więcej to napisz.

Łukasz Wanot

cytat:Łukasz Wanot napisał:

Zgadzam się z powyższymi, ale tutaj także można zastosować procedurę ShowModal.

Jak chcesz wiedzieć więcej to napisz.

Łukasz Wanot

Chodzi o to, zeby zamiast MessageBoxa zrobić drugą formę ?

Co masz zrobić dziś, zrób po jutrze, będziesz miał 2 dni wolnego ;)

GG: 2369033

Masz główną formę (np: Forma1)
Tworzysz drugą formę (np: Forma2)
Na forma1 dajesz przycisk zamknij
W kodzie przycisku zamknij piszesz kod ShowModal , tak żeby wywoływał Forme2, na której wcześniej umieściłeś przycisk:
TAK : z procedurą close (zamyka wszystko)
NIE : z procedurą ShowModal , tak żeby wywoływał Forme1

Łukasz Wanot

W 'OnCloseQ...' głównej formy wpisz:
if MessageBox(Form1.Handle,'Czy chcesz wyjsc?','Potwierdzenie',mb_yesno)=idyes then
Application.Terminade;

i już. Nie zamknie Formy tylko wyświetli pytanie... :)

Anonymous AdSoftadsoftt@o2.pl
gg:2283189

cytat:Anonymous napisał:

W 'OnCloseQ...' głównej formy wpisz:
if MessageBox(Form1.Handle,'Czy chcesz wyjsc?','Potwierdzenie',mb_yesno)=idyes then
Application.Terminade;

i już. Nie zamknie Formy tylko wyświetli pytanie... :)

A po pytaniu zamknie formę bez względu na odpowiedź...

OnCloseQuery za pomocą zmiennej CanClose określa czy forma może zostać zamknięta czy nie. Domyślnie CanClose ustawione jest na True i jeśli się tego nie zmieni to forma zostanie zamknięta. Dlatego w Twoim przykładzie zamiast Application.Terminate powinieneś ustawić zmienną CanClose na False - wtedy będzie OK.

ICQ : 245-363-570
TLEN: oxisoft

A ja jestem za procedurą ShowModal. Jak zrobisz Forma2 to możesz dać przy tym pytaniu jakąś grafe i muzykę na zamknięcie, a za pomocą Message Boxa nie wiem czy się tak da.

Łukasz Wanot

cytat:Łukasz Wanot napisał:

A ja jestem za procedurą ShowModal. Jak zrobisz Forma2 to możesz dać przy tym pytaniu jakąś grafe i muzykę na zamknięcie, a za pomocą Message Boxa nie wiem czy się tak da.

Muzyczke się da ale po co komu grafika pry zamykaniu? Twój pomysł z ShowModal nie jest zbyt pożyteczny jeżeli ktoś chce sobie tylko wyświetlić pytanie tak nie. Jednak dla bajerandzkich sofcików to może nawet wypalić (jeżeli wpisze się dobry kod).

Peace on earth, war on net...
Zapraszam na QLSITE - Miniportal internetowy
A na maila przesyłajcie wszystkie swoje artykuły, opinie, chęci współpracy, itp

cytat:Łukasz Wanot napisał:

A ja jestem za procedurą ShowModal. Jak zrobisz Forma2 to możesz dać przy tym pytaniu jakąś grafe i muzykę na zamknięcie, a za pomocą Message Boxa nie wiem czy się tak da.
Rzadko się takie coś spotyka ale oczywiście można tak zrobić jeśli ktoś ma ochotę - ale nie w Buttonie tylko w OnClose lub OnCloseQuery.

ICQ : 245-363-570
TLEN: oxisoft

var
odp : integer;
begin
odp := Application.MessageBox('cos','cos',MB_YESNO OR MB_ICONQUESTION);
if not(odp = IDYES) then
Application.Run;
{U mnie all ok}

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •