Subprogramme is stukke kode wat saamgevoeg word om `n sekere doel te bereik in sekere situasies.
Byvoorbeeld, `n "Event Handler" is een sekere tipe subprogram (`n "Prosedure") wat gehardloop word wanneer `n spesifieke iets gebeur, byvoorbeeld wanneer daar op `n sekere button geclick word.
Buiten prosedures kry ons ook funksies. Daar is ingeboude funksies (soos Sqrt, StrToIn, en so aan) in Delphi, maar jy kan ook jou eie funksies skep.
Waar `n Prosedure eenvoudig `n stel stappe is wat gevat word, is `n funksie se doel om `n resultaat te lewer; byvoorbeeld, `n wiskundige berekening. FUNKSIES LEWER ALTYD `n RESULTAAT. Dit is die grootste verskil tussen `n Prosedure en `n Funksie.
Ek word baie gevra wat is dan die verskil tussen `n objek / klas en `n prosedure of funksie. Dis doodeenvoudig; `n objek of klas kan self verskeie prosedures of funksies hê. Sien `n objek as `n mini program op sy eie, terwyl prosedures en funksies stelle kode is wat deur daardie mini program uitgevoer kan word. En dit als saam vorm een groot program.
Funksies word gewoonlik binne in prosedures gehardloop.
Byvoorbeeld. Op bl. 220 van Geniet Delphi Deel 2 is daar Aktiwiteit 7. In daardie kode is daar `n paar dinge wat ek wil uitwys.
Eerstens sien ons daar word `n class geskep genaamd "TWerker".
In die "TWerker" class is daar twee functions ("BerekenBonus" en "BerekenSalaris") wat altwee resultate lewer in die vorm "real" (rieële getalle).
Dan word daar `n objek geskep genaamd "Werker" van die class "TWerker". Met ander woorde, "Werker" het nou daardie funksies oorgeërf omdat hy deel is van die "TWerker" class.
Nou word die funksie verduidelik. Ons sien dat "BerekenBonus" gaan kyk of die werker se aantal ure meer is as 40. As dit meer is, dan vat hy die verskil tussen die aantal ure en 40 en vermenigvuldig dit met sy vergoeding per uur. As dit NIE meer is nie, dan is die bonus 0.
"BerekenSalaris" aan die ander kant is die vergoeding per uur vermenigvuldig met die aantal ure, plus die bonus wat reeds bereken is.
Beide die "BerekenBonus" en die "BerekenSalaris" is FUNKSIES. Hulle lewer `n resultaat.
Dan, in die einde, sien ons `n "PROCEDURE", wat dan doodeenvoudig die OBJEK skep, en daarna (op bl 221) nog `n PROCEDURE wat plaasvind wanneer die "Bereken" knoppie geclick word, wat doodeenvoudig die funksies uitvoer.
So `n mens kan dit half opsom as volg:
`n
Klas word gedefinieër,
waaruit `n
Objek geskep word,
wat `n stel
Funksies bevat,
wat uitgevoer word deur `n
Prosedure.
Maak dit sin? Ek hoop so. Gooi my met die vrae as julle het. ;-)