try...except czyli obsługa wyjątków
Cel

Poprawimy pracę naszego kalkulatora, a dokładniej obsłużymy wyjątek który powstawał, gdy użytkownik nie wpisał liczb w pola i kliknął przycisk.

Końcowy efekt



Potrzebne komponenty

Edit1

TEdit

Edit2

TEdit

Label1

TLabel

Label2

TLabel

Label3

TLabel

Button1

TButton



Metoda

1) Wstawiamy komponenty, wypisane w powyższej tabeli i zmieniamy im właściwość name na taką jaka jest w kolumnie "Nazwa"

2) Zmieniamy właściwości Caption lub Text według własnego uznania lub sugerując się rysunkiem

3) Do obsługi funkcji OnClick przycisku dodajemy poniższy kod. Linie które zostały dodane do pierwszej wersji kalkulatora zostały dodatkowo pogrubione.

procedure TForm1.Button1Click(Sender: TObject); var X, Y, Z : Integer; begin try X := StrToInt(Edit1.text); Y := StrToInt(Edit2.text); Z := X + Y; Label3.Caption := IntToStr(Z); except MessageDlg('Nie wpisałeś liczb', mtInformation, [mbOk], 0); end;


4) Uruchamiamy program.

Trochę teorii

Obejmując dane wyrażenia znacznikami try ... except możemy obsłużyć każdy wyjątek który może powstać. Pod słowem except wpisujemy co program ma zrobić po zaistnieniu wyjątku, gdy już to uczynimy zamykamy deklarację znacznikiem end;

Kod źródłowy

unit Unit1;   interface   uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;   type TForm1 = class(TForm) Edit1: TEdit; Label1: TLabel; Edit2: TEdit; Label2: TLabel; Label3: TLabel; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;   var Form1: TForm1;   implementation   {$R *.DFM}   procedure TForm1.Button1Click(Sender: TObject); var X, Y, Z : Integer; begin try X := StrToInt(Edit1.text); Y := StrToInt(Edit2.text); Z := X + Y; Label3.Caption := IntToStr(Z); except MessageDlg('Nie wpisałeś liczb', mtInformation, [mbOk], 0); end; end;   end.


Autorem tekstu jest: Michał Siudziński
http://cpw.net.pl
Materiał dodany przez użytkownika: alphan