Zrozumienie i korzystanie z funkcji i procedur
Maskot/Getty Images
Czy zdarzyło Ci się kiedyś pisać ten sam kod w kółko, aby wykonać jakieś typowe zadanie w ramach?obsługa zdarzeń? TAk! Nadszedł czas, abyś poznał programy w ramach programu. Nazwijmy te podprogramy miniprogramów.
Wprowadzenie do podprogramów
Podprogramy są ważną częścią każdego język programowania , i Delfy nie jest wyjątkiem. W Delphi na ogół istnieją dwa rodzaje podprogramów: funkcja i procedura. Zwykła różnica między funkcją a procedurą polega na tym, że funkcja może zwrócić wartość, a procedura na ogół tego nie zrobi. Funkcja jest zwykle wywoływana jako część wyrażenia.
Spójrz na następujące przykłady:
|_+_|Po zdefiniowaniu podprogramów możemy je wywołać raz lub więcej razy:
|_+_|
Funkcje i procedury
Jak widać, zarówno funkcje, jak i procedury działają jak mini-programy. W szczególności mogą mieć w sobie własny typ, stałe i deklaracje zmiennych.
Przyjrzyj się (różne) funkcji SomeCalc:
|_+_|Każda procedura lub funkcja zaczyna się od nagłówek który identyfikuje procedurę lub funkcję i wymienia parametry rutyna używa, jeśli w ogóle. Parametry są wymienione w nawiasach. Każdy parametr ma nazwę identyfikującą i zwykle ma typ. Średnik oddziela parametry na liście parametrów od siebie.
sStr, iYear i iMonth są nazywane stałe parametry . Parametry stałe nie mogą być zmieniane przez funkcję (lub procedurę). iDay mija jako był parametr i możemy wprowadzać w nim zmiany wewnątrz podprogramu.
Funkcje, ponieważ zwracają wartości, muszą mieć a typ zwrotu zadeklarowane na końcu nagłówka. Wartość zwracana funkcji jest podana przez (końcowe) przypisanie do jej nazwy. Ponieważ każda funkcja niejawnie ma zmienną lokalną Result tego samego typu co wartość zwracana przez funkcje, przypisanie do Result ma taki sam efekt, jak przypisanie do nazwy funkcji.
Pozycjonowanie i wywoływanie podprogramów
Podprogramy są zawsze umieszczane w sekcji implementacji jednostki. Takie podprogramy mogą być wywoływane (używane) przez program obsługi zdarzeń lub podprogram w tej samej jednostce, która jest zdefiniowana po nim.
Uwaga: klauzula uses jednostki mówi, jakie jednostki może ona wezwać. Jeśli chcemy, aby określony podprogram w Unit1 mógł być używany przez programy obsługi zdarzeń lub podprogramy w innej jednostce (powiedzmy Unit2), musimy:
- Dodaj Unit1 do klauzuli uses w Unit2
- Umieść kopię nagłówka podprogramu w sekcji interfejsu Unit1.
Oznacza to, że podprogramy, których nagłówki są podane w sekcji interfejsu są globalny w zakresie .
Kiedy wywołujemy funkcję (lub procedurę) wewnątrz jej własnej jednostki, używamy jej nazwy z czymkolwiek parametry są potrzebne. Z drugiej strony, jeśli wywołamy podprogram globalny (zdefiniowany w innej jednostce, np. MyUnit) używamy nazwy jednostki, po której następuje kropka.
|_+_|Uwaga: funkcje lub procedury mogą mieć osadzone w sobie własne podprogramy. Wbudowany podprogram jest lokalny dla podprogramu kontenera i nie może być używany przez inne części programu. Coś jak:
|_+_|