Przerwanie wykonywania procedury.

0

Witam.

Mam następujący problem, otóż po kliknięciu przycisku na formie głównej, najpierw ma wyświetlić drugą formę z pewną informacją, i teraz w zależności jeżeli użytkownik zaakceptuje informację, ma wykonać procedurę, jeżeli nie to przerwać ją:

Przycisk na formie głównej:

form2.label.text:='pewna informacja';
form2.showmodal;

Zawszę mogę wstawić na formie głównej ukrytego checkboxa i i przycisk z formy by go zaznaczał lub nie i dodał procedurę if checkbox.checked then...
ale jak inaczej to zrobić ?

0

Ustawić Buttonom na Form2 odpowiednie ModalResult. Na przykład na mrYes oraz mrNo obsługę ich załatwi kod Form1.
A poniżej kod jaki wstawić dla Form2 aby zablokować możłiwość zamknięcia przez Alt+F4 i przez "X" na górze jej paska.

Form1:

  Form2.ShowModal;
  case
    Form2.ModalResult of
    mrYes :
      begin
        ShowMessage('Wybrano Tak')
      end;
    mrNo :
      begin
        ShowMessage('Wybrano Nie')
      end;
  else
    begin
      ShowMessage('Wybrano coś innego');
    end;
  end;

Form2:

procedure TForm2.FormCreate(Sender: TObject);
begin
   with Self do
   begin
     BorderIcons := [];
     BorderStyle := bsSingle;
     Position := poScreenCenter;
   end;
end;

procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := (Self.ModalResult = mrYes) or (Self.ModalResult = mrNo);
end;
0

Jeżeli chodzi Ci o zwykły komunikat w stylu "czy chcesz kontynuować..." to możesz użyć do tego MessageBox z WinAPI

if Messagebox(handle, 'tresc komunikatu','tytuł komunikatu', MB_YESNO) = idyes then Showmessage('Wybrano tak') else ShowMessage('Wybrano nie');

MessageBox jest funkcją zwracającą wartość integer. Tak więc można użyć case do dokładniejszego określenia akcji. Istnieją także odpowiedniki tej funkcji, np

MessageBoxEx()

który pozwala dodawać różne bajery typu ikonka itp

http://4programmers.net/WinAPI/MessageBox

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