Jak používat funkce a postupy v Delphi

click fraud protection

Už jste někdy zjistili, že píšete stejný kód znovu a znovu, abyste v něm vykonávali nějaký společný úkol obsluhy událostí? Ano! Je čas, abyste se dozvěděli o programech v rámci programu. Říkejme těmto podprogramům mini-programů.

Úvod do podprogramů

Podprogramy jsou důležitou součástí každého programovací jazyk, aDelphi není výjimkou. V Delphi jsou obecně dva typy podprogramů: funkce a procedura. Obvyklý rozdíl mezi funkcí a procedurou spočívá v tom, že funkce může vrátit hodnotu a procedura to obecně neudělá. Funkce se obvykle nazývá jako součást výrazu.

Podívejte se na následující příklady:

postup Řekni Ahoj(konst sWhat:tětiva); začít
ShowMessage ('Hello' + sWhat); konec; funkce YearsOld (konst BirthYear: integer): integer; var
Rok, Měsíc, Den: Slovo; začít
DecodeDate (datum, rok, měsíc, den); Výsledek: = Year - BirthYear; konec; 

Po definování podprogramů je můžeme jednou nebo vícekrát nazvat:

postup TForm1.Button1Click (Sender: TObject); začít
SayHello („uživatel Delphi“); konec; postup TForm1.Button2Click (odesílatel: TObject); 
instagram viewer
začít SayHello ('Zarko Gajic'); ShowMessage („Vy jste“ + IntToStr (YearsOld (1973)) + „roky!“); konec;

Funkce a postupy

Jak vidíme, funkce i postupy fungují jako mini-programy. Zejména mohou mít v sobě svůj vlastní typ, konstanty a proměnná prohlášení.

Podívejte se blíže na (různé) funkce SomeCalc:

funkce SomeCalc. (konst sStr: tětiva; konst iYear, iMonth: integer; var iDay: integer): boolean; začít...konec; 

Každá procedura nebo funkce začíná a záhlaví který identifikuje postup nebo funkci a uvádí seznam parametry rutinní použití, pokud existuje. Parametry jsou uvedeny v závorkách. Každý parametr má identifikační název a obvykle má typ. Středník odděluje parametry v seznamu parametrů od sebe navzájem.

Jsou volány sStr, iYear a iMonth konstantní parametry. Konstantní parametry nelze pomocí funkce (nebo postupu) změnit. IDay je předán jako var parametra můžeme v něm provést změny uvnitř podprogramu.

Funkce, protože vracejí hodnoty, musí mít návratový typ deklarováno na konci záhlaví. Návratová hodnota funkce je dána (konečným) přiřazením k jejímu názvu. Protože každá funkce implicitně má lokální proměnnou Výsledek stejného typu jako návratová hodnota funkcí, přiřazení výsledku má stejný účinek jako přiřazení názvu funkce.

Podprogramy pro určování polohy a volání

Podprogramy jsou vždy umístěny v implementační části jednotky. Takové podprogramy mohou zavolat (použít) obsluha události nebo podprogram ve stejné jednotce, která je definována po ní.

Poznámka: klauzule použití jednotky vám řekne, které jednotky může volat. Pokud chceme, aby konkrétní podprogram v Unit1 byl použitelný pro obsluhu událostí nebo podprogramy v jiné jednotce (řekněme Unit2), musíme:

  • Přidejte Unit1 do klauzule použití Unit2
  • Umístěte kopii záhlaví podprogramu do sekce rozhraní jednotky Unit1.

To znamená, že podprogramy, jejichž záhlaví jsou uvedena v sekci rozhraní, jsou globální rozsah.

Když nazýváme funkci (nebo proceduru) uvnitř své vlastní jednotky, používáme její jméno s čímkoli parametry jsou potřeba. Na druhou stranu, pokud voláme globální podprogram (definovaný v jiné jednotce, např. MyUnit), použijeme název jednotky následovaný tečkou.

... // V této jednotce je definován postup SayHello
SayHello („uživatel Delphi“); // Funkce YearsOld je definována uvnitř jednotky MyUnit
Dummy: = MyUnit. YearsOld (1973);... 

Poznámka: funkce nebo procedury mohou mít v sobě zabudované vlastní podprogramy. Vložený podprogram je lokální pro podprogram kontejneru a nelze jej použít jinými částmi programu. Něco jako:

postup TForm1.Button1Click (Sender: TObject); funkce Je malý(konst sStr:tětiva): boolean; začít// IsSmall vrátí True, pokud je sStr malými písmeny, jinak Falešné
Výsledek: = LowerCase (sStr) = sStr; konec; začít// IsSmall lze použít pouze v události Button1 OnClick-li IsSmall (Edit1.Text) pak
ShowMessage („Všechny malé kapitálky v Edit1.Text“)
jiný
ShowMessage ('Ne všechny malé velká písmena v Edit1.Text'); konec;
instagram story viewer