A Delphi program szerkezete
A Delphiben a programírás általában egy form és a komponensek tulajdonságainak leírásával kezdődik. A formot egy unit (egység) írja le. Egy Delphi program tehát a főprogramon kívül legalább egy unitot is tartalmaz.
Egy Delphi program tehát a következő fő részekből áll:
- programfej,
- egységek felsorolása,
- főprogram.
Egy Delphi unit a következő fő részekből áll:
- unitfej,
- az illesztő rész (interface),
- a deklarációs rész (type, var stb.),
- a kifejtő rész (implementation),
- az egységzárás (end.).
Az illesztő részben, az interface kulcsszó után definiálhatjuk azt, amit más programrészek is láthatnak. Az itt nem definiált részek csak az adott unit számára elérhetők. Itt kell megadni azt is, hogy melyik más unitok tartalmát akarjuk használni. Ezt kell felsorolni a uses kulcsszó után. A deklarációs részben a unit számára látható típus-, változó-, konstans- és címkedeklarációkat kell megadnunk. Az implementation után kell a unitot alkotó eljárásokat, függvényeket leírnunk. Ezek közül kifelé csak azok láthatók, ha az interface után felsoroljuk őket (az eljárás- és függvényfejeket). Az egységet end. zárja le.
A Delphi építőelemei
A Delphi nyelvű program alapvető építőelemei, azaz legkisebb értelmezhető egységei a következők:
- szimbólumok,
- fenntartott szavak,
- azonosítók,
- címkék,
- konstansok,
- elválasztójelek.
a) Szimbólumok: A programban bizonyos szimbólumokat használunk. (műveleti jelek, relációs jelek, zárójelek stb.). Pl.
+ | - | * | / | = | ; | : | , |
b) Foglalt szavak: A foglalt szavakat, vagy kulcsszavakat a programozónak nem szabad használni a programban változók, konstansok, eljárások, vagy bármi más elnevezésére. A foglalt szavakat a Delphi vastagon írja a forrásszövegben. PL.
and | array | begin | record | repeat |
c) Azonosítók: Az azonosítók a program bizonyos elemeinek elnevezésére szolgálnak. Pl. a programnak nevet kell adni, az egyes változókat, konstansokat, eljárásokat is el kell keresztelni. Az azonosító ASCII karakterekből állhat. Megszorítások:
- kis- és nagybetűket (ékezet nélkül!) használhatunk;
- számmal nem kezdődhet, de lehet benne;
- kötőjel nem, de aláhúzásjel ( _ ) lehet benne;
- szóköz, *, !, ? nem lehet;
- azonos változó- vagy konstansnév nem szerepelhet kétszer (eltérő típus esetén sem);
- fenntartott szó nem lehet;
- hossza nem meghatározott, de csak az első 63 karakter számít.
Saját változóink nevét a típusmegadás és a változók felsorolása helyén adhatjuk meg (a type és a var kulcsszavak után). Az azonos típusú változókat vesszővel elválasztva lehet felsorolni, az utolsó után pedig pontosvesszőt kell tenni.
d) Címkék: A címkék használatát általában kerülni kell. A program bármely pontjáról elküldhetjük a vezérlést a program egy másik pontjára. A goto 10; utasítás segítségével például a program vezérlése az utasítás helyéről átugrik a 10: címkével megjelölt helyre (a címke után kettőspontot kell tenni!). A címke elhelyezkedhet a goto előtti vagy utáni programrészen. Ahhoz, hogy a fordító felismerje a goto utáni címkét, a deklarációs részben a label kulcsszó után kell elhelyezni.
e) Konstansok: A konstans lehet szám- vagy szövegkonstans. Állandókat akkor adunk meg, ha egy bizonyos számértéket vagy szövegrészt a programban gyakran használunk. Ha a fejlesztés során módosítani szükséges, akkor sokkal egyszerűbb állandóként meghatározni, s csak ezt az egy értéket javítani. A konstansokat a const kulcsszó után egyenlőségjelet használva ismertetjük, pl. így:
sum = 'Összesen:';
vagy
szam = -273.16; .
{Az adatbeolvasás kezdete}
vagy
(* Az n szerinti ciklus vége *)
A Delphi rutinjai
A programban deklarált rutinok, azaz az eljárások és függvények arra teremtenek lehetőséget, hogy a programunkat logikailag és funkcionálisan meghatározott különálló egységekre bontsuk. Az eljárásokat és a függvényeket a főprogram (vagy egy másik eljárás) vezérli.
Eljárások
Az eljárás deklarálása a procedure kulcsszóval indul, amelyet az azonosító (név) követ. A név után zárójelben paraméter(ek) is megadható(k). Az eljárás feje után a belső (lokális) változók, típusok, konstansokés címkék felsorolása következik (de nem biztos, hogy vannak). Az utasításokat begin és end; között kell felsorolni, a záró end után is pontosvesszőt kell tenni.
a) Példa paraméter nélküli eljárásra:
procedure Uzenet;
begin
ShowMessage('Kevés a memória!');
end;
b) Példa paraméteres eljárásra:
procedure Szorzas5(var Szam: Double);
begin
Szam:=Szam * 5;
end;
Függvények
A függvény abban különbözik az eljárástól, hogy értéket (de csak egy értéket) ad vissza. Deklarálása a function kulcsszóval indul, amelyet az azonosító (név), a paraméterek és az eredmény típusának deklarálása követ. Az utasításblokkban adjuk meg a végrehajtandó utasításokat. A függvényt az azonosítóval kell hívni, a paraméterek típusának és sorrendjének egyeznie kell.
A következő példa tetszőleges kitevőjű hatványozásra alkalmas függvényt mutat be:
function Hatvany(alap,kitevo: Double):Double;
begin
Hatvany:=Exp(kitevo*ln(alap));
end;
Hívása: Eredmeny:=2.85*hatvany(szam,4);
Paraméterek
Paramétereket az eljárások és függvények deklarálásakor adhatunk meg az azonosító (név) mögött, kerek zárójelek között. A paraméterek tulajdonképpen a rutinon belüli lokális változók. A paraméterekre az azonosítókkal hivatkozhatunk. A Delphi három paramétertípust különböztet meg:
- értékparaméter,
- változó paraméter,
- típus nélküli paraméter.
Ha egy paramétert csak az azonosítójával adunk meg, akkor értékparaméterről beszélünk. Ha a paraméter előtt a var kulcsszó áll, és a paramétert típusdeklaráció is követi, akkor változó paraméterről van szó. Ha a var után nem áll típusdeklaráció, akkor típus nélküli a paraméter.