Rozdział 10
[ Powrót ]
W poprzednim rozdziel zastosowałem komunikat ShowMessage. Możesz stosować taki komunikaty w zapobieganiu ew. błędów jakie wykona użytkownik programu. Konstrukcja jest prosta - najpierw słówko ShowMessage, a później treść komunikatu.
Istnieją jeszcze dwa typy komunikatów.
Umieść na formularzu dwa przyciski. W treści procedury pierwszego wpisz takie oto polecenie:
MessageDlg('To jest komunikat pierwszy :)', mtInformation, [mbOK], 0);
Ten komunikat wydaje Ci się trudniejszy? W pierwszym parametrze podawana jest treść komunikatu, w kolejnym jego typ (może być także mtError - wtedy obok komunikatu wyświetli się znana ikona Windowsa informująca o błędzie) - w tym wypadku mtInformation - obok komunikatu pojawi się "dymek". Parametr [mbOK] informuje, że pojawi się przycisk OK.
2. W treści drugiej procedury umieść taki oto kod:
Application.MessageBox('To jest komunikat 2', 'Błąd programu.',MB_OK);
W tym komunikacie masz możliwość ustalenia napisu jaki pojawi się w oknie komunikatu na pasku. Możesz też zrobić coś takiego:
var
Odp : Integer;
begin
Odp:=
Application.MessageBox(
'Wystąpił błąd w programie. Czy chcesz poczytać Help'a?','Błąd',
MB_YESNOCANCEL);
if Odp=IDYES then
{treść procedury}
if Odp=IDNO then
Close; {zakończenie programu}
if Odp=IDCANCEL then
Exit; {zamknięcie okna komunikatu}
To by było na tyle jeśli chodzi o komunikaty. Teraz zajmijmy się wyjątkami.
Pisząc program, a później oddając go do użytku nie jesteś w stanie przewidzieć zachowania osoby korzystającej z tego programu. Zawsze przecież taka osoba może zrobić coś, co nie jest tolerowane przez program. Wtedy ażeby zapobiec takim przypadkom powinieneś stosować wyjątki. Powróćmy do programu pisanego w Rozdziale 8. Procedura, która otwierała plik video wyglądała następująco:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if OpenDialog.Execute then //wywołanie okna "Otwórz"
Player.FileName:=OpenDialog.FileName;
PLayer.Open;
Player.Display:=Panel1; //Panel1 będzie wyświetlaczem filmu
Player.DisplayRect:=Panel1.ClientRect; //Dostosowanie rozmiarów filmu do
rozmiaru Panelu
end;
Zmodyfikujmy tę procedurę to takiej oto postaci:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
try
if OpenDialog.Execute then //wywołanie okna "Otwórz"
Player.FileName:=OpenDialog.FileName;
PLayer.Open;
Player.Display:=Panel1; //Panel1 będzie wyświetlaczem filmu
Player.DisplayRect:=Panel1.ClientRect; //Dostosowanie rozmiarów filmu do
rozmiaru Panelu
except
ShowMessage('To nie jest plik video lub wystąpił jakikolwiek
inny bląd');
end;
OBJAŚNIENIE: Słówko try oznacza "spróbuj". Program wykonuje instrukcje zawarte po tym słowie. Jeżeli operacja się nie powiedzie następuje wykonanie instrukcji zawartych pod słowem except.
Istnieje jeszcze słowo finally, które wykorzystuje się wraz ze słowem try. Instrukcje zawarte po słowie finally zostaną wykonane niezależnie od czy operacja powiodła się, czy też nie. Zapytasz zapewne "Jaki jest sens stosowania tego słowa skoro instrukcje po nim zawarte wykonane będą niezależnie, czy operacja się powiedzie?". Słowo to stosuje się, aby upewnić się, że zostanie zwolniona pamięć jaka została przydzielona. Np:
var
Pamiec : Pointer;
begin
try
Pamiec:=AllocMem(1024);
finally
FreeMem(Pamiec);
end;
end;
W tym przypadku zostaje przydzielona pamięć, która zostanie zwolniona po zakończeniu działania procedury. To już wszystko tym razem. Już niebawem kolejny kurs. Odwiedzajcie tę stronę częściej lub wpiszcie się, aby być informowany emailem o uaktualnieniach.
[ Powrót ]