Wydział Transportu PW
Laboratorium z informatyki sem.II. ćw. 3
Materiały pomocnicze do ćwiczenia 3 Sposoby przekazywania parametrów
Jeżeli w deklaracji procedury lub funkcji są określone parametry, to odwołując się do niej w programie przekazujemy jej tzw. parametry aktualne przez wartość albo przez zmienna. Parametry przekazywane przez wartość to wyrażenia wyliczane przed wykonaniem procedury. Parametry przekazywane przez zmienną to zmienne, których wartości zaktualizowane przez wykonanie procedury są dostępne po jej zakończeniu.
W deklaracji procedury parametry przekazywane przez zmienną są poprzedzone słowem kluczowym var. Np. poniższy nagłówek funkcji określa parametr C przekazywany przez zmienna typu całkowitego: function CzytajC(e: TEdit; var c: Integer): Boolean;
Typ boolowski w wyrażeniach, zmiennych, funkcjach i właściwościach
Typ Boolean, zwany też logicznym, obejmuje dwie wartości: True i False, które są wykorzystywane do sterowania wykonaniem programu, np. działanie instrukcji if jest określane przez wyrażenie tego typu. Proste wyrażenia logiczne mogą mieć postać stałej, zmiennej, wywołania funkcji lub relacji, np.: if n<0 then w:=l/w;
Złożone wyrażenia tworzymy z pomocą operatorów negacji, sumy i iloczynu logicznego not, or i and, np.: if CzytajC(Editl,n) and CzytajC(Edit2,k) then ...
Funkcja typu logicznego może informować o pomyślnym lub błędnym przebiegu wykonania pewnych operacji. Np. funkcja Czytaj C zwraca wartość True po przeczytaniu poprawnej liczby całkowitej.
Szereg właściwości komponentów Delphi ma typ Boolean. Często wartość logiczna True lub False przypisana do tego typu właściwości decyduje o tym, czy jakaś cecha występuje czy nie. Przykłady stanowią właściwości Visible (widoczny), Enabled (czynny) komponentów okienkowych lub specyficzna właściwość Down komponentu SpeedButton.
Obsługa błędu - instrukcja try ...except
Bloki instrukcji, w których mogą wystąpić błędy wykonania, np. niewłaściwa postać liczby w polu edycyjnym, można zabezpieczyć za pomocą instrukcji try ... except; Ma ona postać: try
instrukcje w których może wystąpić błąd except
instrukcje wykonywane gdy wystąpi błąd end;
Jeśli w instrukcjach po try błąd nie wystąpi, to instrukcje po except są pomijane.
Aby uniknąć wyświetlania komunikatów kompilatora usunęliśmy zaznaczenie opcji Stop on Delphi Exceptions w poleceniu Tools|Debugger Options|Language Exceptions. Dzięki temu własna obsługa błędów za pomocą instrukcji try... działa tak jak w programie uruchomionym poza środowiskiem Delphi.
Komponent SpeedButton z zakładki Additional
Komponent SpeedButton 8@1 jest odmianą przycisku. Oprócz tytułu (Caption ) może on wyświetlać na swej powierzchni grafikę - mapę bitową określoną przez właściwość Glyph. Zasadniczą cechą przycisku SpeedButton jest dwustanowość i możliwość grupowania w zestawy. Przyciski o tej samej, różnej od zera wartości właściwości GroupIndex tworzą jedną grupę, przyciski o zerowej wartości GroupIndex są niezależne. Po kliknięciu jednego z przycisków danej grupy, pozostaje on wciśnięty (właściwość Down ma wartość True) aż do kliknięcia innego przycisku z tej samej grupy.
Zaznaczanie grupy komponentów
Aby zaznaczyć kilka komponentów należy kliknąć pierwszy z nich a następnie przy wciśniętym klawiszu [Shift] klikać kolejne komponenty. Każdy z tych komponentów zostanie oznaczony szarymi uchwytami. Wspólne właściwości wszystkich zaznaczonych komponentów zastaną wyświetlone na zakładce Properties w oknie Object Inspector i można zmienić ich wartości równocześnie dla wszystkich tych komponentów. Podobnie można utworzyć wspólne procedury obsługi zdarzeń (zakładka Events).
Właściwości Enabled i Visible
Właściwość Enabled określa, czy komponent reaguje na zdarzenia związane z myszką lub klawiaturą. Wartość True powoduje, że zdarzenia te mogą być obsługiwane, a wartość False powoduje, że komponent jest przyciemniony i nie można oddziaływać na ten komponent za pomocą myszki i klawiatury.
Właściwość Visible określa widoczność komponentu na ekranie. Jeśli ma wartość True, to komponent jest ukryty. Ten sam efekt uzyskuje się za pomocą metody Hide, np. pole edycyjne można ukryć za pomocą jednej z instrukcji:
lub Editl. Hide;
Editl.Visible:=False;