Procedura to wydzielony fragment kodu, który za każdym razem, gdy zostanie wywołany, wykonuje określoną czynność na podstawie przekazanych parametrów. Procedury deklaruje się za pomocą słowa kluczowego procedure.
interface
procedure MojaProcedura;
procedure MojaProcedura2;
implementation
procedure MojaProcedura;
begin
{ kod procedury }
end;
procedure Moja2Procedura;
begin
{ kod procedury }
end;
Deklarację procedur umieszczamy w sekcji Interface. Definicję procedury, czyli jej treść umieszczamy natomiast w sekcji Implementation.
W Delphi nie ma znaczenia jakie litery będą używane podczas deklarowania nazwy procedury.
Nieumieszczenie deklaracji procedury w sekcji Interface powoduje, że procedura nie będzie rozpoznawana przez inne moduły tego samego programu. Jeśli więc chcemy wywołać procedurę z innego moduły, umieszczenie deklaracji funkcji w seksji Interface jest niezbędne.
Funkcja od procedury różni się tym, że zwraca rezultat swojego działania. W sekcji Interface dodaj deklarację funkcji:
function Sqare(Liczba: Integer) : Integer;
Funkcję deklaruje się za pomocą słowa kluczowego function. Następnie następuje nazwa funkcji. Na samym końcu deklaracji wpisywany jest rezultat wykonanej operacji w postaci zmiennej typu Integer.
Teraz w sekcji Implementation wpisz definicję funkcji:
function Square(Liczba: Integer) : Integer;
begin
Result := Liczba * Liczba;
end;
W funkcjach możliwe jest do wykorzystania słowo kluczowe Result. Oznacza ono rezultat wykonanej
operacji. W tym wypadku rezultatem jest przemnożenie zmiennej Liczba. Funkcję wywołujemy tak samo jak procedurę:
Square(2);
Wywoływna zostaje funkcja, w której jako parametr podawany zostaje cyfra 2. Jeśli chcemy wyświetlić wynik zwracany przez funkcję, możemy użyć funckji ShowMessage. Pamiętać należy o konwersji typów, parametrem ShowMessage jest zmienna typu string, natomiast wynikiem funkcji Square jest zmienna typu interer. Musimy zamienić integer na string.
ShowMessage(IntToStr(Square(2)));
Oczywiście można też przypisać wynik działania funkcji do jakiejś zmiennej, oczywiście tego samego typu, co wynik zwracany przez funkcję
var
a : integer;
begin
a := Square(2);
end.
Od Delphi 4 istnieje możliwość przeciążania procedur i funkcji, czyli nadawania im takich samych nazw, ale innych parametrów. Wówczas należy opatrzyć taką procedurę lub funkcję klauzurą overload. W sekcji Interface wygląda to tak :
function Funkcja(I : Integer) : Currency; overload;
function Funkcja(I : Currency) : Currency; overload;
W sekcji implementation definiujemy te funkcje :
function Funkcja(I : Integer) : Currency; overload;
begin
Result := I * I;
end;
function Funkcja(I : Currency) : Currency; overload;
begin
Result := I * I;
end;
Obydwie zwracają wynik mnożenia swoich parametrów. Teraz możesz wykorzystać te polecenie w ten sposób :
Funkcja(2);
Funkcja(2.22);
Program dobierze i wywoła odpowiednią funkcję, przez porównanie typów parametrów.
Aby dodać komentarz zaloguj się. Jeśli nie masz konta, załóż je sobie.
Tylko zarejestrowani użytkownicy mogą pisać komentarze.