Te-ai găsit vreodată să scrii același cod de mai multe ori pentru a efectua unele sarcini comune în cadrul gestionarilor de evenimente? Da! Este timpul pentru dumneavoastră să aflați despre programe dintr-un program. Haideți să numim aceste sub-programe de mini-programe.
Subrutinele sunt o parte importantă a oricărui limbaj de programare, iar Delphi nu face excepție. În Delphi, există în general două tipuri de subrutine: o funcție și o procedură. Diferența obișnuită între o funcție și o procedură este că o funcție poate returna o valoare, iar o procedură, în general, nu o va face. În mod normal, o funcție este numită parte a unei expresii.
Aruncați o privire la următoarele exemple:
procedură Spune buna(const sWhat:şir); începe ShowMessage ('Hello' + sWhat); Sfârșit; funcţie Varsta(const BirthYear: întreg): întreg; var An, lună, zi: cuvânt; începe DecodeDate (data, anul, luna, ziua); Rezultat: = Anul - Nașterea Anului; Sfârșit;
După ce au fost definite subrutinele, le putem apela de una sau de mai multe ori:
procedură TForm1.Button1Click (Expeditor: TObject); începe SayHello („Delphi User”); Sfârșit; procedură TForm1.Button2Click (Expeditor: TObject); începe SayHello („Zarko Gajic”); ShowMessage ('Sunteți' + IntToStr (YearsOld (1973)) + 'ani!'); Sfârșit;
După cum vedem, ambele funcții și proceduri acționează ca mini-programe. În special, ele pot avea propriul tip, constante și declarații variabile în interiorul lor.
Aruncați o privire mai atentă la o (diversă) funcție SomeCalc:
funcţie SomeCalc (const SSTR: şir; const iYear, iMonth: număr întreg; var iDay: întreg): boolean; începe ... Sfârșit;
Fiecare procedură sau funcție începe cu a antet care identifică procedura sau funcția și listează lista parametrii rutina folosește dacă este cazul. Parametrii sunt enumerați între paranteze. Fiecare parametru are un nume de identificare și de obicei are un tip. Un punct și virgulă separă parametrii dintr-o listă de parametri unul de altul.
sStr, iYear și iMonth sunt numite parametrii constanți. Parametrii constanți nu pot fi schimbați prin funcție (sau procedură). IDay este trecut ca o parametru var, și îi putem face schimbări, în interiorul subrutinei.
Funcțiile, întrucât returnează valori, trebuie să aibă o tip retur declarat la sfârșitul antetului. Valoarea de retur a unei funcții este dată de atribuirea (finală) la numele acesteia. Deoarece fiecare funcție are implicit o variabilă locală Rezultat de același tip ca și valoarea returnării funcțiilor, alocarea Rezultatului are același efect ca atribuirea numelui funcției.
Subrutinele sunt întotdeauna plasate în secțiunea de implementare a unității. Astfel de subrutine pot fi numite (utilizate) de către un operator de gestionare a evenimentelor sau o subrutină din aceeași unitate definită după aceasta.
Notă: clauza de utilizare a unei unități vă spune ce unități poate apela. Dacă dorim ca o subrutină specifică dintr-o unitate 1 să poată fi utilizată de gestionarii de evenimente sau de subrutinele unei alte unități (să spunem unitatea2), trebuie să: