Title: Bevezet
1Bevezetés a DELPHI-be
2I.
3BEVEZETÉS
- Windowsos alkalmazások fejlesztéséhez jó darabig
csak a - legyünk oszinték, nem igazán könnyen
kezelheto - C nyelv állt rendelkezésre. - Mikor a Microsoft kihozta Visual Basic nevu,
komponens alapú fejleszto rendszerét, a Borland
is elérkezettnek látta az idejét, hogy - miután
már korábban megjelentette népszeru Turbo Pascal
programnyelvét Windowsos változatban - vizuális
fejlesztoi környezettel lássák el a Pascal-t. - Így született meg a Delphi fejlesztorendszer,
amit óriási lelkesedéssel fogadtak a Windowsos
programozók.
4BEVEZETÉS
- Könnyedén és gyorsan hozhatunk létre segítségével
igényes, bonyolult Windows programokat. - A korszeru fordító technika eredményeként
optimalizált és gyors futású programot nyerünk. - A Delphi ugyanis a forráskód lefordítása után
valódi, végrehajtható gépi kódot állít elo (ezzel
szemben a Visual Basic interpreter típusú
program, azaz a forráskódot futási idoben
értelmezi).
5BEVEZETÉS
- A Delphi programozásához persze újszeru, vizuális
fejlesztoi stílus "illik", a hagyományos
programnyelvekben járatos programozóknak új
programozási technikához kell hozzászokniuk. - Ennek ellenére - minthogy a Delphi a Pascal
nyelvre épül - alkalmazásához szükség van
bizonyos Pascal ismeretekre. - Az Object Pascal programozói nyelvezete az
angolra épül, s maga a Delphi feliratok, menük,
üzenetek stb. is angolul szerepelnek. Ezért
elonyt jelenthet az angol nyelv bizonyos szintu
ismerete.
6A Delphi megjelenése
- A Delphi elindítása után a következo képernyovel
jelentkezhet be
7A Delphi megjelenése
- A Delphi fejlesztokörnyezet négy fo területbol
áll a fejrészbol, ami a menüt, az eszközöket és
a komponenseket tartalmazza, a bal oldalt látható
objektumfelügyelobol (Object Inspector), a
formszerkeszto ablakból és a formszerkeszto által
részben eltakart kódszerkesztobol. - Utóbbi úgy válik láthatóvá, ha a formszerkeszto
alól "kilógó" részére rákattintunk.
8A Delphi megjelenése
9A Delphi munkaterület fejrésze
- Bármilyen száraznak is tunhet a következo rész, a
menük többé-kevésbé részletes ismertetése
kikerülhetetlen. - Elozetesen csak annyit kell megemlíteni, hogy a
Delphi menüje is helyzetérzékeny, azaz esetenként
a legördülo menülista tételei attól is függnek,
hogy éppen milyen muveletet végezünk.
10A File menü
- New... A menüpont kiválasztásakor egy
összefoglaló jellegu, többlapos párbeszéd-ablak
jelenik meg (New Items), ahonnan új projektet,
vagy más elemeket választhatunk. Általában van
egyszerubb módszer is...
11A File menü
- A New lapon új projektet nyithatunk meg, vagy pl.
formot vagy unitot adhatunk a projekthez. - A Project1 lap a már kész formok átalakítását,
belolük új formok eloállítását tesz lehetové. - A Dialogs lapról néhány típus párbeszéd-ablak
készítéséhez nyújt segítséget. - A Data Modules lapon adatkezelo formok
készítéséhez kapunk segítséget, végül a Projects
oldal a több dokumentumból (MDI) és az egy
dokumentumból (SDI) álló felületet tartalmazó
projekthez nyújt segítséget.
12A File menü
- New Application Innen egyszerubben nyithatunk új
projektet. - New Form Új form hozzáadása.
- New Data Module Adatbázis jellegu formot
kezdhetünk építeni. - Open... Létezo unitot vagy formot nyit meg,
amivel egyúttal a projektünkhöz hozzá is
adhatjuk.
13A File menü
- Reopen A legutóbb használt néhány projekt ill.
fájl nyitható meg innen. - Save Elmenti az aktuális fájlt.
- Save As... Másik név alatt menthetjük el a
fájlt. - Save Project As... A projektet új néven menti
el.
14A File menü
- Save All A projekthez tartozó összes fájlt
elmenti. - Close Bezárja az aktuális fájlt. Ha még nem volt
elmentve, rákérdez a mentésre. - Close All Az összes megnyitott fájlt bezárja. A
mentetlenekre rákérdez. - Use Unit A unitok kezelését könnyíti meg (ha
több unitból áll a projekt).
15A File menü
- Add To Project Formot vagy unitot adhatunk a
projektünkhöz, ... - Remove From Project ... ezzel meg
eltávolíthatjuk. - Print Nyomtatás.
- Exit A Delphibol való kilépés egyik lehetosége.
16Az Edit menü
- Undelete vagy Undo és Redo A szokásos
visszavonás-visszaállítás pár. - Cut Kivágás.
- Copy Másolás.
- Paste Beillesztés.
17Az Edit menü
- Delete Törlés.
- Select All A szövegszerkeszto ablak minden sorát
kijelöli (formszerkesztoben minden elemet). - Align to Grid Rács, amelynek segítségével
pontosan helyezhetok el a komponensek a
formokon. - Bring to Front A kijelölt objektumot a többi
fölé helyezi, ...
18Az Edit menü
- Send to Back ... ez pedig alá.
- Align Párbeszédablak segíti a precíz
komponens-elhelyezést. - Size A kijelölt objektum pontos méreteit
állíthatjuk be. - Scale A komponens nagyíthatóságáról lehet
intézkedni.
19Az Edit menü
- Tab Order Egy formon azt lehet beállítani, hogy
a Tab billentyuvel milyen sorrendben lépkedjük
végig a komponenseken. - Creation Order A nem vizuális komponensek
létrehozása. - Lock Controls A form elemeinek rögzítésére
való. - Object A formra helyezett OLE objektum
szerkesztése.
20A Search menü
- Find... Szöveget kereshetünk vele. A megnyíló
párbeszédablakban megadható a szöveg, megadható,
hogy megkülönböztesse-e a kis- és nagybetuket
(Case sensitive), vagy hogy csak teljes szavakat
kell-e keresni (Whole words only). Megadható a
keresés tartománya, azaz hogy a teljes szövegben,
vagy csak a kijelölt blokkban kell-e keresni
(Global, Selected), a keresés iránya elore, vagy
vissza (Forward, Backward) történjen stb. - Replace... Szöveget cserélhetünk, a Text to find
sorba a keresendo, a Replace with sorba a
csereszöveget kell beírni. A keresési funkciónál
megismert beállítási lehetoségek itt is
megvannak. A Replace all bekapcsolásával
valamennyi elofordulást automatikusan lecseréli.
21A Search menü
- Search Again A keresési, illetve csere muvelet
ismételheto. - Incremental Search Ez is keresés, de begépelés
közben a keresett szöveghez ugrik. - Go to Line Number... A megadott számú sorra
ugrik a kurzor. - Find Error A fordítás vagy futtatás utáni hiba
helyére ugrik. - Browse Symbol Szimbólumot kereshetünk (csak
fordítás után használható).
22A View menü
- Project Manager A Project Manager ablak
megjelenítésére való. - Project Source A kódszerkeszto ablakot hozza be,
ahol a projekt forráskódú szövegét nézhetjük
meg. - Object Inspector Az objektumfelügyelo ablakot
jeleníti meg. - Alignment Palette A megnyitott ablakban a
kijelölt elemeket egyszeruen rendezhetjük el.
23A View menü
- Browser Csak lefordított program esetén él.
Osztályok, metódusok hivatkozásait, hatáskörét
tekinthetjük meg. - Breakpoints Töréspontokat helyezhetünk el a
programban, illetve ezeket tekinthetjük meg. A
programfutás ellenorzésére használjuk. - Call Stack Hibakeresésnél használjuk, az
eljáráshívások ellenorzésére. - Watches A programfutás ellenorzésekor bizonyos
változók értékét kísérhetjük figyelemmel.
24A View menü
- Threads Másodlagos folyamat megjelenítése.
- Component List Komponenseket helyezhetünk el a
formon. A komponens palettáról egyszerubb... - Window List A Delphiben megnyitott ablakok
megjelenítésére való. - Toggle Form/Unit A form és a unit között
kapcsolgathatunk.
25A View menü
- Units A projektben lévo unitok jelennek meg.
- Forms A projektben lévo formok jelennek meg.
- New Edit Window Egy új szövegszerkeszto
(kódszerkeszto) ablak nyílik meg, aminek
felhasználásával a forráskódú szöveg különbözo
részeit szerkeszthetjük. - Speedbar Az eszközpalettát tehetjük láthatóvá (
) vagy tüntethetjük el. - Component Palette A komponenspalettát tehetjük
láthatóvá vagy tüntethetjük el.
26A Project menü
- Add to Project... A File menüben is
megtalálható, ... - Remove from Project... ... miként ez is.
- Add to Repository... Ha olyan formot
készítettünk, amit máskor is fel akarunk
használni, felvehetjük a kelléktárba. - Compile A módosított forráskód lefordítására
való.
27A Project menü
- Build All A projekt összes unitját lefordítja.
- Syntax Check Ellenorzi a kód szintaktikáját.
Futtatás, de fordítás elott is érdemes
elvégezni. - Information... A lefordított fájlról szolgáltat
adatokat. - Options... Többoldalas párbeszéd-ablakban lehet
különbözo beállításokat tenni
28A Run menü
- Run Futtatja a programot. Ha a program szövege
megváltozott, akkor elobb automatikus fordításra
és szerkesztésre kerül sor (jegyezzük meg az F9
billentyut!). - Parameters Futási paraméterek beállítására
való. - Step Over A programfutás követésére való.
Szubrutinokba nem megy be (F8). - Trace Into A programfutás soronkénti követésére
való. Szubrutinok hívásakor a szubrutinok
utasításain is végigmegy a program. Itt is fontos
az F7 funkcióbillentyu.
29A Run menü
- Trace to Next Source Line Lépés a következo
programsorra. - Run to Cursor Nem fut végig a program, hanem
csak az aktuális kurzorpozícióig (F4). - Show Execution Point Megmutatja a következo
programsort. - Program Pause Felfüggesztés.
30A Run menü
- Program Reset Befejezi a lépésenkénti
futtatást. - Add Watch... Egy figyelendo változót lehet
beírni, a programfutás során figyelemmel
kísérheto az érték alakulása. - Add Breakpoint... Töréspontokat lehet beszúrni a
programba. - Evaluate/Modify... A programfutás során
keletkezett változó értékekre lehet rákérdezni az
Expression mezoben, az értékek a Result mezoben
jelennek meg.
31A Component menü
- New... Új komponenseket készíthetünk (már ha
szükséges). - Install... Kész, vásárolt komponenseket
telepíthetünk a Delphi komponenskönyvtárába. - Open Library... Új komponenskönyvtárat hozhatunk
létre. - Rebuild Library A komponenseken végrehajtott
módosításokat rögzíthetjük. - Configure Palette... A komponenspaletta
testreszabása.
32A Database menü
- Explore Betölti a Database Explorert, amely
lehetové teszi az adatbázis-struktúrákban való
keresést. - Form expert... Adatbázis beviteli képernyok
készítését segíti.
33A Tools menü
- Options... Többlapos párbeszéd-ablakban a Delphi
különbözo beállításait lehet elvégezni. - Repository... Az Add to Repository paranccsal
létrehozott kelléktárhoz való hozzáférés. - Tools... A Delphi-hez adott eszközök elérése.
- Image Editor Az egyik ilyen eszköz lehet pl az
Image Editor képszerkeszto-rajzoló, ... - Database Desktop ... a másik pedig a Database
Desktop.
34A Help menü
- Help Topics A Tartalom, Tárgymutató és Keresés
nevu lapokból álló segítség. - About... A minden programhoz járó Névjegy Delphi
változata.
35Az eszközpaletta
- Látható, hogy a Delphi ablakai a Windowsnál
megszokott jellemzokkel bírnak címsor,
ablakkezelo gombok, vezérlomenü stb. - A Delphi címsora a Project1 feliratot viseli (ez
a felirat azonban a különbözo állapotoknak
megfeleloen - pl. mentés után - változhat!). - A menü 11 tételt tartalmaz, amelyekbol szabványos
legördülo menük jelennek meg.
36Az eszközpaletta
- Az itt található parancsok gyakrabban használható
része a menüsor alatt, baloldalon található
eszközpalettán is megtalálható ikonként. - Ezek a gombsorok természetesen testreszabhatók,
azaz olyan gombokkal egészíthetok ki, amiket
munkánk során gyakran használunk, a kevésbé
használatosak pedig eltávolíthatók. - A gombok funkciójáról súgócímke ad tájékoztatást,
azaz ha valamelyikre ráállunk az egérkurzorral,
egy keretben lévo felirat mondja meg, mire is
való.
37A komponenspaletta
- A komponenspalettán több lapon, tematikus
csoportokba gyujtve találhatók a Delphi
komponensei (összesen több, mint 100 darab). - Már a Standard lapon található elemekkel
felépítheto egy átlagos form, azaz Windows ablak
(menü, gombok, jelölo négyzetek, rádiógombok stb.
felhasználásával), az esetleg még szükséges
komponensek a további lapokon találhatók. - A form szerkesztése úgy történik, hogy a
komponenseket az adott gombra kattintva
elhelyezzük a formfelületen. - Az egyes elemek tulajdonságait az Object
Inspector-ban (objektumfelügyelo) állíthatjuk be.
38Az objektumfelügyelo
- Az Object Inspector voltaképpen egy kétlapos
párbeszéd-ablak, ahol beállíthatjuk a form és a
komponensek tulajdonságait (név, méret, szín,
betuk stb.). - Ez történik a Properties nevu lapon.
- Az Events (események) lapon pedig az egyes
elemekhez kapcsolódó eseményekrol (pl.
egérkattintás, billentyuütés stb.)
intézkedhetünk. - Az objektumfelügyeloben mindig a formszerkeszton
aktív (kijelölt) elem tulajdonságai állíthatók,
módosíthatók.
39Az objektumfelügyelo
40A formszerkeszto
- A formszerkeszto az a felület, amelyen a
tervezett Windows ablakot kialakítjuk. - A formon (urlapon) kell elhelyezni a menüt,
gombokat stb., az objektumfelügyeloben pedig
megadhatjuk ezek tulajdonságait. - Már maga a form is már egy teljes, ámbár üres
Windows ablakot takar. - Ha lefuttatnánk, egy olyan üres Windows ablakot
kapnánk, amit méretezhetünk, áthelyezhetünk,
használhatnánk a jobb felso ablakgombokat, de még
a rendszermenüt is.
41A formszerkeszto
- Az ábrán egy nyomógomb komponenst tettünk az
urlapra. A form felületén a komponensek
elhelyezését pontozott rács segíti. - Az ablakmodellek leírását a Delphi .DFM
kiterjesztésu állományokban tárolja.
42A kódszerkeszto ablak
- A kód- (szöveg-) szerkeszto ablak alapesetben a
formszerkeszto alatt alig látható. - Akkor tunik elo, ha a kilógó alsó részére
kattintunk, vagy megnyomjuk az F12
funkcióbillentyut. A következo ábra szerinti
ablak látható
43A kódszerkeszto ablak
- Az ablakban az eddig "megírt" Object Pascal
nyelvu kódszöveget látjuk. - A Delphi ugyanis az általunk vizuális módon
szerkesztett form, illetve a komponensek
Pascal-kódját rögtön beilleszti az aktuális unit
megfelelo helyére. - A unitok fájljai .PAS kiterjesztésuek. Minden
egyes formhoz tartozik egy unit (de létezik form
nélküli unit is!). Egy program alá természetesen
általában több form és több unit is tartozik.
44A kódszerkeszto ablak
- Maga a program (azaz "delphiül" projekt) kódja is
megtekintheto, ha a View menü Project Source
parancsát választjuk. - A projekt forráskódja .DPR kiterjesztésu
állományban tárolódik.
45A kódszerkeszto ablak
- Bár az ábrák szerinti kódszerkeszto ablak a
kódszövegnek csak kis részét láttatja (valójában
ezek is méretezheto ablakok!), annyi máris
kitunik, hogy az Object Pascal szövegszerkesztoje
- a "régi" Turbo (Borland) Pascal 7.0 haladó
hagyományait követve - automatikusan kiemeli a
programnyelv kulcsszavait, a megjegyzéseket pedig
dolt kék betukkel írja.
46Próbálkozzunk a Delphivel!
- A Windows egész filozófiája az ablakokra van
alapozva, ezért a Windowsos felületre tervezett
Delphi alkalmazásokat is ablakokban kell
elképzelni. - A program (projekt) különbözo részei, muveletei
egy-egy, arra a feladatra tervezett ablakban
játszódnak le. - Magyarul a program felhasználói felületét az
ablakok szolgáltatják.
47Próbálkozzunk a Delphivel!
- A Delphiben kétféle programozási stílussal kell
dolgoznunk. - Az egyik a komponensekkel való programozás.
- A komponensek elore elkészített építoelemek,
amelyekbol úgy állítjuk össze a programot, mint
egy Lego-játékot az építokockáiból. - A másik programozási mód a "hagyományos" a
problémamegoldás Object Pascal programnyelven
való megfogalmazása. - A Delphi a forráskód egy részét saját maga
készíti el, a tulajdonképpeni algoritmusokat
nekünk kell megírnunk.
48Próbálkozzunk a Delphivel!
- Mik ezek a komponensek? Adott feladatra tervezett
elemek, amelyeket Object Pascal-ban írtak meg, s
amelyek forráskódjához a Delphi bizonyos
verzióiban hozzá is férhetünk. - A komponenseket a nevük elé írt T beturol
ismerhetjük fel. - A komponenseket az urlapon (formon) helyezhetjük
el. - Maga a form komponens neve TForm, a ráírt szöveg
TLabel, a ráhelyezett nyomógomb pedig TButton
stb.
49Elso Delphi programunk
- A Delphi felhasználásának módszerét legkönnyebben
egy egyszeru programocska elkészítésével
mutathatjuk be. - A feladat a következo a kezdo üres ablakban
egérkattintásra jelenjen meg egy szöveg
("Kattints ide!"), ha odakattintunk, íródjék ki
egy másik szöveg ("Kattints a szövegen
kívülre!").
50Elso Delphi programunk
- Indítsuk el e Delphit, s máris ott áll kezdo
ablakunk, az objektumfelügyeloben pedig a Form1
TForm1 felirat, ami arra utal, hogy a projekt
TForm1 nevu elso formjával dolgozunk. - Az ablak címkéjét nevezzük át Elso Delphi
programra. - Ehhez az Object Inspector-ban keressük meg a
Caption tulajdonságot (valószínuleg ez az aktív),
s a Form1 helyére írjuk be az Elso Delphi program
szöveget. Az ablak címsorában már látjuk is az új
címkét
51Elso Delphi programunk
- Ez tulajdonképpen már most is egy futtatható
program. - Futtassuk is a Run gomb vagy az F9
funkcióbillentyu megnyomásával. - A felajánlott neveket, helyet elfogadhatjuk, de
módosíthatjuk is. - Az eredmény egy üres ablak, aminek a címkéjét mi
adtuk meg, és minden, a Windows-ablakokra
jellemzo tulajdonságokkal rendelkezik
(méretezhetoség, az Alt F4 "ismerete" stb.). - Ha bezárjuk az ablakot, folytathatjuk a
"programfejlesztést".
52Elso Delphi programunk
- Eloször egy szövegmezot kell letennünk.
- Kattintsunk az eszközpaletta Standard lapján a
Label komponens jelére, majd tegyük le az urlapra
(kattintsunk a közepére). - Vegyük észre, hogy most az objektumfelügyeloben a
Label-re vonatkozó tulajdonságokat állíthatjuk be
(Label1 TLabel). - Az Events lap OnClick eseménymezojén kattintsunk
kétszer. - Megjelenik a kódszerkeszto ablak az eseménykezelo
sablonnal
53Elso Delphi programunk
- procedure TForm1.Label1Click(Sender
TObject)begin - end
- Most - egyelore minden magyarázat nélkül - írjuk
be az eseménykezelo utasítást a begin ... end
közé - Label1.Caption'Kattints a szövegen kívülre!'
54Elso Delphi programunk
- Most kattintsunk a form felületére, ezzel a
formot tesszük kijelöltté, majd az ismét
objektumfelügyeloben az Events lap OnClick
eseménymezojén kattintsunk kétszer. - Most az urlapon való kattintás eseménykezelését
oldjuk meg. - Ekkor a szövegmezoben a Kattints ide szöveget
akarjuk megjeleníteni. Az eseménykezelo sablont
egészítsük ki a következo módon
55Elso Delphi programunk
- procedure TForm1.FormClick(Sender TObject)
- begin
- Label1.Caption'Kattints ide!'
- end
56Elso Delphi programunk
- Ezzel kész is vagyunk a programkészítéssel.
- Ha ismét futtatjuk a programot, az ablak közepén
egy Label1 feliratot látunk. - Kattintsunk bárhová az ablakon belül, s a szöveg
megváltozik. - Fogadjunk szót a feliratoknak, s a kattintgatást
addig folytathatjuk, míg meg nem unjuk. - Ha ez bekövetkezik, zárjuk be az ablakot, hogy
visszatérjünk a kódszerkesztobe.
57Elso Delphi programunk
- A programindításkor az ablakban csúfkodó Label1
feliratot még eltüntethetjük. - Rákattintással jelöljük ki az urlapon a Label-t,
majd az Object Inspector Caption mezojében adjunk
a Label-nek egy üres karakternyi nevet (üssünk a
Space billentyuvel egy szóközt). - Az újbóli futtatáskor már üres ablakkal
kezdhetünk.
58A második Delphi program
- Az ablakok egy speciális típusa a menüvel
rendelkezo ablak. - Már kezdoként összetett, bonyolult
menüszerkezetet tudunk eloállítani, most
példaként egy erosen egyszerusített Windowsos
menüt szerkesztünk. - Az ablak egyéb jellemzoi szabványosak.
- A menüszerkezetet a következo táblázat mutatja
be
59A második Delphi program
60A második Delphi program
- Ugyanúgy, mint az elso program esetén, egy üres
formból indulunk ki. - A form címsorát nevezzük át "Második Delphi
program"-ra. - Már tudjuk, ez úgy történik, hogy az
objektumfelügyelo Caption sorába beírjuk a
szöveget. - Most helyezzük el a formon a TMainMenu ( ) nevu
komponenst (rákattintunk a komponenspalettán az
elem jelére, majd bárhol rákattintunk a formra,
vagy kétszer kattintunk az elem jelére).
61A második Delphi program
- Már "csak" a menüt kell megírnunk. Ez a
menüszerkeszto ablakban történik. - Kattinsunk kétszer a formon lévo TMainMenu
komponensre, s megnyílik a menüszerkeszto.
62A második Delphi program
- Mivel az elso menühely aktív, írhatjuk is az elso
menücímet "Fájl". - Vegyük észre, hogy a szöveget tulajdonképpen az
Object Inspector Caption cellájába írjuk be. - Az Enter megnyomása után megnyílik a Fájl menü
alá tartozó menütételek elso eleme. - Ide írjuk be a "Megnyitás"-t, a "Mentés"-t, majd
a "Bezárás"-t.
63A második Delphi program
- A fomenü második eleme beírásához a jobbranyíl
billentyuvel lépjünk egyet, s írjuk be a
"Szerkesztés" szót. - Az ide tartozó három menütételt a már ismert
módon írhatjuk be. - Hasonló módon kell eljárnunk a további menük
esetén is, s a "Névjegy" cím beírásával végeztünk
is a menü elkészítésével.
64A komponensekrol
- Az elozo fejezetekben láthattuk, hogy a
programfejlesztés a Delphi-ben valóban egyszeru,
de a felhasználható komponenseket meg kell
ismernünk. - Ugyancsak szükséges, hogy a komponensekhez
tartozó tulajdonságokat is ismerjük. - A következokben ezeket tekintjük át - terjedelmi
korlátok miatt korántsem a teljesség igényével.
65A Standard lap komponensei
- A komponenspaletta elso, Standard lapján a
leggyakrabban használt komponenseket találjuk
meg.
66Az Additional lap komponensei
- Egyéb, különlegesebb, de még mindig kissé
általános jellegu komponensek gyujtohelye.
67A Win32 lap komponensei
- Néhány Windows stílusú kiegészíto elem található
itt.
68A Dialogs lap komponensei
- A Dialogs lap komponensei a párbeszéd-ablakok
néhány típusát segítik elkészíteni.
69A System lap komponensei
- A System párbeszéd-lapon rendszer- és egyéb
alkalmazáskomponensek találhatók.
70A formokról
- A Delphi alapeleme a form vagy urlap.
- Az urlap komponens neve TForm.
- A Delphi indításakor kapott üres ablak egy TForm
komponens, amelyen pontozott rács helyezkedik el.
- A rács segíti a szükséges komponenseket
elhelyezni az urlapon. - Az alkalmazás készítésének elso szakasza nem más,
mint a TForm objektum megszerkesztése (a
komponensek elhelyezése), a tulajdonságok és
eseménykezelések megadása.
71A formok tulajdonságai
- A Delphi objektumainak tulajdonságait általában
az Object Inspector-ban, magyarul
objektumfelügyeloben állíthatjuk be. - Természetes, hogy mindig az az elem módisítható,
amely aktív, amely ki van jelölve. - A tulajdonságok nevei azonban ugyanazok minden
komponens esetében, és ez igaz az eseményekre is.
- Korábban már láttuk, hogy az objektumfelügyelo
kétlapos ablak. - Az egyik, Properties nevu lapon a
tulajdonságokat, az Events lapon pedig az
eseményeket állíthatjuk be.
72ActiveControl
- Azt határozhatjuk meg, hogy melyik komponensen
legyen a fókusz, azaz pl. gomb komponense esetén
melyik nyomógomb legyen az alapértelmezett
(körülötte sötétebb keret). - A tulajdonság neve melletti, egyelore üres részre
kattintsunk rá, s a legördülo listából - amely a
formon található komponenseket tartalmazza -
kiválaszthatjuk a kívánt elemet.
73AutoScroll
- A tulajdonságnak két állása van True és False.
- A True beállítása azt jelenti, hogy az ablak -
amennyiben futási idoben olyan kicsire
módosítódik, hogy tartalma nem fér el benne -
automatikusan kiegészül gördítosávval.
74BorderIcons
- A tulajdonságnevek egy része elott jel látható
(hasonló a Windows Intézohöz). - Ez azt jelenti, hogy ha kétszer rákattintunk,
akkor további altulajdonságok jelennek meg,
amelyeket egyenként lehet beállítani (ha - jel
van elotte, akkor viszont összezárható). - A BorderIcons tulajdonsággal egyébként a
Windowsos rendszermenü és ablakméretezo gombok
megjelenésérol rendelkezhetünk.
75BorderIcons
- biSystemMenu a rendszermenü (vezérlomenü)
engedélyezése a True vagy a False választásával. - biMinimize az ablakminimalizáló gomb
engedélyezése. - biMaximize az ablakmaximalizáló gomb
engedélyezése. - biHelp a Help gomb engedélyezése.
76BorderStyle
- Az ablakszegély stílusát és méretezhetoségét
határozza meg. A legördülo listából a következok
közül választhatunk - bsDialog szabványos párbeszéd-ablak keret, nem
méretezheto. - bsSingle nem méretezheto szimpla vonalas keret.
- bsNone nem látható, nem méretezheto keret,
ablakmaximalizáló, minimalizáló ikonja, vagy
rendszermenüje lehet. - bsSizeable normál méretezheto keret.
- bsSizeToolWin olyan mint a bsSizeable, de kisebb
címsora van. - bsToolWindow olyan mint a bsSingle, de kisebb
címsora van.
77Caption
- Magyarul képszöveg, felirat.
- Itt az ablak címsorában szereplo szöveg, az ablak
neve. - Közvetlenül kell beírni a Caption szövegmezobe.
78ClientHeight, ClientWidth
- A form hasznos, kereten belüli méretét lehet
megadni pixelben.
79Color
- A form háttérszínét adhatjuk meg.
- Vagy a legördülo listából választunk, vagy a jobb
oldali cellára kétszer kattintunk, s a megjeleno
párbeszéd-ablakból választunk.
80Ctl3D
- Három- vagy kétdimenziós megjelenítésrol
intézkedhetünk.
81Cursor
- Rengeteg kurzorforma közül válogathatunk, amely a
form fölötti helyzetre értendo. - A súgóban meg lehet tekinteni.
82Enabled
- A form csak True állásban reagál külso
eseményekre, False állapotban nem!
83Font
- A betuk megjelenítését határozhatjuk meg egy
többszintu beállítási listán - A három pontra kattintva összetett
párbeszéd-ablakban tehetok meg a beállítások.
84FormStyle
- Négy beállítási lehetoség közül választhatunk.
- Az fsNormal az alapértelmezett, az fsStayOnTop
esetén az ablak mindig a többi fölött fog
elhelyezkedni, az MDI-s tulajdonságokat pedig MDI
formok esetén kell választani.
85Height
- A form magasságát állíthatjuk be pixel egységben.
86HelpContext
- Súgó alkalmazása esetén használatos.
87Hint
- Ez is a súgóval kapcsolatos tulajdonság (a
ShowHint tulajdonság True-ra állításánál aktív).
88HorzScrollBar
- A függoleges gördítosáv beállításának összetett
beállítását tehetjük meg (a láthatóságot a
Visible tulajdonság True-ra állításával
biztosíthatjuk). - A vízszintes gördítosáv tulajdonságait a
VertScrollBar határozhatjuk meg.
89Icon
- A kívánt ikont a három pontra kattintva
kereshetjük meg. - Az ikon a rendszermenü jeleként fog szerepelni, s
ezt látjuk a Tálcán összezárt alkalmazásikonon
is. A Delphi-hez adott "elore gyártott" ikonokat
az Images/Icons mappában találjuk. - Természetesen máshonnan származó, akár saját
gyártású ikonok is felhasználhatók.
90KeyPreview
- A billentyuleütéseket a False beállításkor a
komponens, True választásakor pedig a form
dolgozza fel.
91Left
- A form helyzetét állíthatjuk be a képernyo bal
oldalától (pixelekben mérve). - A felso résztol való távolságot a Top tulajdonság
írja le.
92Menu
- Menütervezésnél használjuk.
- Külön lesz róla szó.
93Name
- A formnak (de általában az objektumoknak)
adhatunk nevet, hogy olvasható programszövegünk
legyen. - Legfeljebb egyszeru programoknál hagyjuk meg az
eredetit. - A név- (azonosító-) adás szabályai már a
Pascal-ból ismertek.
94ObjectMenuItem
- OLE objektum menücímként való kezelésekor
használjuk.
95PixelsPerInch
- Azt állíthatjuk be, hogy a form egy inch-nyi
részén hány képernyopont (pixel) legyen (a Scaled
tulajdonság True-ra állásánál). - A képernyofelbontástól független programírást
teszi lehetové.
96PopupMenu
- A helyi vagy gyorsmenü nevét adhatjuk meg.
97Position
- A form elhelyezését leíró tulajdonság. Öt
beállítási lehetoség van - poDefault teljes mértékben a Delphi dönt a form
helyérol és méretérol. - poDefaultPosOnly a Delphi dönt a form helyérol,
méretét viszont nem változtatja. - poDefaultSizeOnly a form ott lesz, ahol a
tervezéskor hagytuk, de a méretet a Delphi
állítja be. - poDesigned ott és olyan lesz a form, amilyen a
tervezéskor volt. - poScreenCenter a képernyo közepére helyezi a
formot.
98PrintScale
- A form kinyomtatási módját leíró tulajdonság.
- poNone nem lesz léptékváltoztatás, így a nyomat
különbözni fog a képernyotol. - poPrintToFit a nyomtatási méretek úgy
módosulnak, hogy ráférjen a papírra. - poProportional a képernyon és a papíron lévo
form méretei megegyeznek.
99Scaled
- A PixelsPerInch tulajdonságnál volt róla szó.
100ShowHint
- A Hint tulajdonságnál volt róla szó.
101Tag
- Egész számot adhatunk meg, amivel információt
tárolhatunk az adott objektumról.
102Top
- A form helyzetét állíthatjuk be a képernyo
tetejétol (pixelekben mérve). - Lásd Left tulajdonság is!
103VertScrollBar
- Lásd a HorzScrollBar-nál leírtakat.
104Visible
- A form látható vagy sem (futási idoben).
105Width
- A form szélességi méretét lehet beállítani
pixelekben.
106WindowMenu
- MDI alkalmazásoknál ablakmenüt lehet a formhoz
rendelni.
107WindowState
- A form alapértelemezett méretarányát leíró
tulajdonság. - wsMaximized Maximalizált méretu form.
- wsMinimized Minimalizált méretu form.
- wsNormal Sem nem maximalizált, sem nem
minimalizált méretu form.
108A formok eseményei
- A Delphi programok eseményvezéreltek, ami azt
jelenti, hogy a program valamilyen esemény
bekövetkezésére (pl. egy nyomógomb megnyomására,
billentyuleütésre stb. reagálva) fut tovább. - Az események kezelését segíti az
objektumfelügyelo második, Events nevu lapja. - Az eseménykezelést lényegében nekünk kell
megírnunk, amihez a Delphi forráskódú sablont
szolgáltat. - A sablont az eseménynév jobb oldali cellájára
való kétszeri kattintással, vagy az adott elemre
való kettos kattintással hívhatjuk elo.
109OnActivate
- Akkor használódik, amikor az inputfókusz
áttevodik a formra
110OnClick
- A formra való kattintás váltja ki.
- Elso Delphi programunkban már használtuk.
111OnClose, OnCloseQuery
- Az OnCloseQuery eseményt az ablak bezárása,
pontosabban bezárási kísérlete váltja ki, és az
OnCloseQuery esemény után hajtódik végre. - A formot bezárhatjuk az AltF4 billentyupárossal,
a bezáró ikonnal stb. - Használhatjuk az eseményt a form bezárásának
letiltására, memória-felszabadításra. - Az OnClose esemény határozza meg az ablakbezárás
módjait (az esemény Action paraméterei caNone,
caHide, caFree, caMinimize).
112OnCreate
- A form és komponensei kezdeti tulajdonságainak
beállítására használjuk. - Az esemény a form elso végrehajtásakor következik
be.
113OnDblClick
- Kétszeres egérkattintás váltja ki.
114OnDeactivate
- Más alkalmazásra való váltáskor következik be
(pl. a programot a Tálcára tesszük alkalmazásikon
formájában, s egy másik alkalmazással, pl.
szövegszerkesztovel kezdünk dolgozni).
115OnDestroy
- A memória-felszabadítás eszköze ablakbezáráskor.
116OnDragDrop, OnDragOver
- Az egér mozgását figyelo események (l. még
OnMouse...).
117OnHide
- Az ablak elrejtésekor következik be.
118OnKeyDown, OnKeyPress, OnKeyUp
- A billentyuleütéseket figyelo események.
119OnMouseDown, OnMouseMove, OnMouseUp
- Az egér mozgását figyelo események (l. még
OnDrag...).
120OnPaint
- Ha az ablak egy részét ideiglenesen eltakarta
valami (pl. egy másik ablak), akkor az
újrarajzolásról itt kell gondoskodni.
121OnResize
- Az ablak átméretezésekor az elemek áthelyezését
és átméretezését itt kell megoldani.
122OnShow
- A form megjelenése elott bekövetkezo esemény.
123A legfontosabb komponensekrol
- A komponenseket már áttekintettük korábban, most
a leggyakrabban használt komponenseket ismerjük
meg részletesebben, tulajdonságaikon keresztül. - Itt természetesen csak azokat a
komponenstulajdonságokat ismertetjük, amelyek a
formtulajdonságoknál még nem fordultak elo (a
tulajdonságnevek egyébként minden esetben
azonosak).
124A TLabel komponens
- Elso Delphi programunkban már használtuk ezt a
komponenst, dolgoztunk a Caption tulajdonsággal
és megismertük az onClick eseményt is. - A TLabel komponens bármilyen szöveg elhelyezésére
alkalmas üzenet kiírására, egy másik komponens
megnevezésére stb.
125Align
- A Label komponenst a form, illetve a tartalmazó
komponens széléhez viszonyítva igazítja. - alTop A felso részre igazít.
- alBottm Az alsó részre igazít.
- alLeft Balra igazít.
- alRight Jobbra igazít.
- alNone Nem igazít sehová.
- alClient Elfoglalja az egész formot.
126Alignment
- A szövegmezon belül a szöveg elrendezését
oldhatjuk meg. - taCenter Középre rendez.
- taLeftJustify Balra rendez.
- taRightJustify Jobbra rendez.
127AutoSize
- True állásnál a címke felveszi a szöveg méretét,
False állásnál nem.
128Transparent
- Ennek is két állása van True és False.
- Ha a True-t állítjuk be, akkor a címke átlátszó
lesz, s ami alatta van (pl. egy ábra), látszani
fog.
129Wordwrap
- True esetén sortörést állítunk be.
130A TEdit komponens
- Egysoros szövegmezo, ahova a felhasználó beírhat
valamit, de néha üzeneteket is megjelenítenek
benne.
131AutoSelect
- True állásnál ha a fókusz a mezore kerül, akkor a
benne lévo szöveg kijelölodik.
132AutoSize
- True állásnál a szerkesztési terület magassága a
választott betumérethez igazodik, szélessége
azonban nem változik.
133CharCase
- A beírt szöveg karaktereit konvertálja (vagy nem
konvertálja). - ecLowerCase A beírt szöveget kisbetussé
alakítja. - ecUpperCase Nagybetussé konvertál.
- ecNormal Kis- és nagybetuk is megjeleníthetok,
azaz a szöveg olyan lesz, ahogy a felhasználó
begépelte.
134HideSelection
- True állásnál ha a fókusz a mezorol elkerül,
akkor a benne lévo szöveg kijelölése megszunik,
ellenkezo esetben megmarad.
135MaxLength
- A begépelheto karakterek számát adhatjuk meg.
136PasswordChar
- Jelszó esetén használjuk.
- Az alapértelmezett érték 0, de ha nem akarjuk
láttatni a begépelt jelszót, más karaktert kell
beállítani.
137ReadOnly
- True állásnál csak olvasható a szöveg, nem
szerkesztheto.
138Text
- A mezoben megjeleno kezdeti szöveg.
139A TMemo komponens
- Többsoros szövegmezo, ahol majdhogynem korlátlan
hosszúságú szöveget jeleníthetünk meg. - Tulajdonságai - minthogy a TEdit-tel rokon
komponens - sok tekintetben azonosak.
140Lines
- A szövegmezobe írhatunk be szöveget.
- Vagy a három pontra kattintunk, vagy a
tulajdonság mezore kétszer, s a megjeleno
ablakban szerkeszthetjük szövegünket.
141WantsTabs
- Ha azt akarjuk, hogy a felhasználó a tabulátor
billentyut is használhassa a szövegszerkesztés
során, True-ra kell állítani. - False esetén a fókuszt mozgatjuk a Tab
billentyuvel a formon.
142WantReturn
- True esetén a felhasználó az Enter-rel sort
emelhet, False esetén az Enter-t a form kapja meg
feldolgozásra.
143A TButton komponens
- Egyszeru nyomógomb, ami a Windowsos alkalmazások
gyakorlatilag kikerülhetetlen eleme. - Cancel True esetén a nyomógomb az Esc
billentyure is reagál. - Default True esetén a nyomógomb lesz az
alapértelmezett, így az Enter billentyuvel is
muködtethetjük.
144A TBitBtn komponens
- Ez is nyomógomb, ami az Additional lapon
található. - Abban különbözik a TButton komponenstol, hogy a
szövegen kívül bittérképes grafika is
elhelyezheto rajta. - Tulajdonságai természetesen hasonlítanak a
TButton-ra, itt csak a TBitButton tulajdonságait
vesszük sorra.
145Glyph
- A nyomógombon elhelyezendo ábrát kereshetjük meg
és jelölhetjük ki, ha a tulajdonság jobb oldali
cellájára duplán kattintunk, vagy a három pontos
ikonra egyszer. - A képszerkeszto ablakba (Picture Editor)
tölthetjük a kívánt bittérképes ábrát. A Delphi
által ajánlott ábrák az Images/Buttons
könyvtárban találhatók.
146Kind
- Tizenegy különbözo Delphi-szabvány szerinti gomb
közül választhatunk
147Layout
- Az ábra helyzetét határozhatjuk meg (balra,
jobbra, fel, le).
148Margin
- A gomb és kerete közötti távolság megadása.
149NumGlyphs
- Egy gombon több, de maximum négy azonos méretu
kép is elhelyezheto. - Ezek számát állíthatjuk be itt.
150Spacing
- A felirat és a keret közötti távolság megadása.
151A TCheckBox és a TRadioButton komponens
- A TCheckBox a jól ismert jelölonégyzet, amibol
több is elhelyezheto egy csoportban, s
rákattintással több is kijelölheto. Ha egymást
kizáró lehetoségek közül kell választani, a
TRadioButton (rádiógomb) lehetoséget kell
választani. - Checked True állásban az adott opció
alapértelmezetten kijelölt (a négyzetben pipa, a
körben pedig pont látszik).
152A TListBox és a TComboBox komponens
- A TListBox egy görgetheto listaablak, a lista
elemei közül választható ki a kívánt elem. A
TComboBox is egy listaablak, de itt van lehetoség
a listától eltéro elem beírására is. - Column A TListBox listaablakban a látható
oszlopok számát lehet beállítani. - ExtendedSelect, MultiSelect A TListBox
tulajdonságai ezek is. Amennyiben a MultiSelect
True-ra van állítva, akkor lehetoség van egynél
több elem kiválasztására. Ha a MultiSelect
mellett az ExtendedSelect is True állásban van,
akkor - Windowsos módra - a Shift-es és a Ctrl-os
kijelölési mód is alkalmazható. - Sorted True állásban a lista új elem beírásakor
sorbarendezodik. - Style A lista megjelenési formáját lehet
beállítani.
153A TStringGrid és a TDrawGrid komponens
- Mindkét komponens az Additional lapon található.
- A TStringGrid komponens szövegtáblázat
létrehozását segíti, míg a TDrawGrid komponensben
a szövegen kívül ábrát is elhelyezhetünk. - A formra letett komponens emlékeztet az Excel
táblázatra.
154A TStringGrid és a TDrawGrid komponens
- ColCount A táblázat oszlopainak száma állítható
be. - DefaultColWidth, DefaultRowHeight Az oszlopok és
a sorok méretét lehet megadni. - FixedCols, FixedRows A fejléc, vagy az elso
oszlop celláinak módosíthatatlanságát biztosítja.
- FixedColors A rögzített cellák színe állítható
be. - GridLineWidth A cellahatárokat alkotó vonalak
vastagsága adható meg (0 esetén nincs vonal). - Height, Width A táblázat méretei adhatók meg.
155A TStringGrid és a TDrawGrid komponens
- Options Rengeteg - elsosorban a táblázat
kinézetéért felelos - tulajdonság állítható itt
be. Például - goFixedVertLine False választásakor az elso
(rögzített) sor cellák nélküli összefüggo sáv
lesz. - goFixedHorzLine False állásban az elso
(rögzített) oszlop cellák nélküli összefüggo sáv
lesz. - goVertLine A False érték beállításakor a
táblázat függoleges vonalai eltunnek. - goHorzLine False állásban a táblázat vízszintes
vonalai eltunnek.
156Tervezés
- Hány ablakot tartalmaz?
- Ablakok neve
- Milyen komponenseket használunk fel?
- Komponensek neve
- Milyen változókra lesz szükség?
- Változók neve
157Készítés
- A szükséges algoritmusok lejegyzése
- Az algoritmusok programnyelvre fordítása
- Kódolás
- Fordítás, futtatás
- Hibajavítás
1583. program
- Szöveg kiíratása az értékadó utasítás
159Szöveg kiíratása, értékadó utasítás
- Feladat
- Készítsünk egy KIÍRÓ nevu programot, amely egy
ablakban megjeleníti a következo szöveget - HARMADIK DELPHI PROGRAMOM
- Értékadó utasítás
- változókifejezés
160Ablakok
- Az ablak címsorán a felirat legyen a program neve
(a Formot nevezzük el kiirablak névre)
161Komponensek
- Egy Label komponens szükséges
- Neve legyen szoveg
- A szöveget ne változtassuk meg az
objektumfigyeloben (a Captiont kéne átírni), a
változtatás futás közben történjen értékadással. - A Font tetszolegesen állítható az
objektumfigyeloben.
162Beállítások
- form1.name kiirablak
- kiirablak.caption kiíró
- kiirablak.label1.name szoveg
- kiirablak.szoveg.font tetszolegesen állítható
163Utasítás bevitele
- Válasszuk ki az objektumfigyeloben az Events
fülnél az onActivate eljárást! - Az eljárás törzsébe írjuk be az értékadó
utasítást - kiirablak.szoveg.caption HARMADIK DELPHI
PROGRAMOM - Mentés (unitnév harmadik.pas projektnév
harmadikpr.dpr) - Futtatás!!! (automatikusan létrejön egy
harmadikpr.exe, ami Delphi nélkül is futtatható!)
1644. program
165Szöveg bevitele
- Készítsünk egy programot, amellyel a nevünket
közölve a következo választ kapjuk - Kedves ltnévgt! Jó napot kívánok!
- A program neve Köszöno legyen!
166Ablakok
- Egy ablakra van szükségünk. A form neve legyen
koszono, a címsorába Köszöno kerüljön!
167Komponensek
- A szöveg beviteléhez szükséges egy edit
komponens. - Neve bevitel, ne tartalmazzon semmit
- A válaszolási folyamat elindításához szükséges
egy button komponens. - Neve gomb, Felirata Válasz
- A válasz kiírásához szükséges egy label
komponens, amely csak a gomb megnyomásával válik
láthatóvá. - Neve kiir, nem látható
168Beállítások
- form1.name koszono
- koszono.caption Köszöno
- koszono.edit1.name bevitel
- koszono.bevitel.text
- koszono.button1.name gomb
- koszono.gomb.caption Válasz
- koszono.label1.name kiir
- koszono.kiir.visible false
169Eljárás bevitele
- Mivel a nyomógombra kattintva történik választás,
ezért a gomb onClick eljárásának törzsébe írjuk
be a következot - koszono.kiir.caption Kedves
koszono.bevitel.text ! Jó napot kívánok! - koszono.kiir.visible true
- Mentés (negyedik.pas negyedikpr.dpr)
- Futtatás (negyedikpr.exe)
1705. program
- Egész típusú eredmények kiíratása
171Egész számok kiíratása
- Készítsünk olyan programot, amelybe beviszünk két
egész számot, és gombnyomásra kiszámítja az
összegüket. - A probléma az, hogy a szövegbeviteli mezoben
mindig string helyezkedik el, és a címke is csak
szöveget tud megjeleníteni. - A bevitt adatokat szövegbol számmá, a kiírandót
számból szöveggé kell alakítani.
172Szöveg átalakítása egész számmá
- function StrToInt(const S string) Integer
- az StrToInt függvény a zárójelbe írt szövegbol,
ha tud számot állít elo.
173Egész szám átalakítása szöveggé
- function IntToStr(Value Integer) string
- az IntToStr függvény a zárójelben lévo egész
számból szöveget állít elo
174Ablakok
- Egyetlen ablak szükséges, a neve legyen
osszeadas, a címsorában Összeadás jelenjen meg!
175Komponensek
- Két edit komponens a bevitelhez, nevük legyen
tag1be, tag2be. Egyik se tartalmazzon szöveget
induláskor. - Egy button komponens a számítás elindításához.
Neve osszegez, Felirata Összegez - Egy label komponens a kiíráshoz. Neve kiir,
kezdetben nem látható
176Beállítások
- form1.name osszeadas
- osszeadas.caption Összeadás
- osszeadas.edit1.name tag1be
- osszeadas.tag1be.text
- osszeadas.edit2.name tag2be
- osszeadas.tag2be.text
- osszeadas.button1.name osszegez
- osszeadas.osszegez.caption Összegez
- osszeadas.label1.name kiir
- osszeadas.kiir.visible false
177Változók
- A két bevitt szövegbol számot készítünk, ezeket
tárolni kell két egész típusú változóban.(a, b) - A két szám összegének tárolásához szintén fel
kell venni egy egész típusú változót. (c)
178Változódeklaráció
- Mivel az eljárás most is a nyomógombhoz
kapcsolódik, a nyomógomb onClick eljárásának
változódeklarációs részébe írjuk be - var a,b,cinteger
179Eljárás beírása
- Az onClick eljárás törzsébe a következo kerül
- a StrToInt(osszeadas.tag1be.text)
- b StrToInt(osszeadas.tag2be.text)
- c ab
- osszeadas.kiir.caption IntToStr( c)
- osszeadas.kiir.visible true
180Mentés, futtatás
- otodik.pas otodikpr.dpr
- otodikpr.exe
1816. program
- Valós típusú eredmények kiíratása
182Valós típusú eredmények kiíratása
- Készítsünk olyan programot, amely egy beírt
számnak kiírja a négyzetgyökét! - Probléma a bevitelnél és a kiírásnál az eddig
megismert függvények csak egész számokra
muködnek. - A négyzetgyök kiszámításához szintén függvényt
használunk.
183Szöveg átalakítása valós számmá
- procedure Val(S String var V Real var Code
Integer) - S a szöveget tartalmazó változó
- V változóba kerül az átalakított numerikus érték
- Code változó úgynevezett hibakódot tárol, csak
abban az esetben játszik szerepet, ha sikertelen
az átalakítás, megadása azonban kötelezo.
184Valós szám átalakítása szöveggé
- procedure Str(X hossz tizedesek száma var S
String) - X a valós számot tartalmazó változó
- S az átalakítás után kapott szöveget tároló
változó. - Az S nem lehet Caption, külön változó felvétele
szükséges
185Négyzetgyök
- function Sqrt(X Real) Real
- Az Sqrt függvény a zárójelbe írt szám
négyzetgyökét adja eredményül.
186Ablakok
- A program egyetlen ablakot igényel, neve legyen
gyokablak, címsorába Négyzetgyökszámítás kerüljön.
187Komponensek
- Egy Edit komponens a bevitelhez, neve szambe, ne
tartalmazzon semmit induláskor - Egy button komponens a számítás elindításához,
neve gyokgomb, felirata Négyzetgyök - Egy label komponens a kiíráshoz, neve kiir,
kezdetben nem látható
188Beállítások
- form1.name gyokablak
- gyokablak.caption Négyzetgyökszámítás
- gyokablak.edit1.name szambe
- gyokablak.tag1be.text
- gyokablak.button1.name gyokgomb
- gyokablak.gyokgomb.caption Négyzetgyök
- gyokablak.label1.name kiir
- gyokablak.kiir.visible false
189Változók
- Egy változó szükséges a bevitt szám tárolásához.
(a) - Egy változó szükséges a kiszámított gyök
tárolásához. (gy) - Egy változó a val függvény hibakódjához (code)
- Egy változó a gyök szöveggé alakított
változatának tárolásához (szov)
190Változódeklaráció
- A nyomógomb eljárásának változódeklarációs
részéhez írjuk be - var a,gy real
- code integer
- szov string
191Az eljárás beírása
- A nyomógomb eljárástörzsébe a következo kerül
- val(gyokablak.szambe.Text,a,code)
- gy sqrt(a)
- str(gy84,szov)
- gyokablak.kiir.caption szov
- gyokablak.kiir.visible true
192Mentés, futtatás
- Hatodik.pas Hatodikpr.dpr
- hatodikpr.exe
1937. program
194Az if utasítás
- Feltételes elágazást hajt végre
- if logikai kifejezés then
- begin
- utasítás1
-
- utasításn
- end else
- begin
- utasítás1
-
- utasításm
- end
195Az if utasítás
If
Logikai kifejezés
true
false
THEN ág utasításai
ELSE ág utasításai
196Megjegyzések
- Ha valamelyik ág csak egy utasítást tartalmaz,
akkor a begin end páros elhagyható. - ELSE ágnak nem szükséges lennie.
197Feladat
- Készítsünk olyan programot, amely véletlenszeruen
választ egy számot 1 és 100 között. - Mi tippelünk, amire a program válaszol aszerint,
hogy a tippünk a választott számnál nagyobb vagy
kisebb, vagy esetleg ugyanannyi. - Újdonság a véletlenszám kiválasztása.
198Véletlenszám kiválasztása
- function Random( Range Integer)
- a Random függvény úgy választ ki egy egész
számot, hogy az nem negatív, és kisebb, mint a
Range-nél megadott érték. - A függvény meghívása elott ki kell adni a
randomize utasítást (ez kapcsolja be a
véletlenszám generátort)
199Ablakok
- A programhoz két ablakot használjunk!
- Az egyik a tippelést teszi lehetové, neve
tippablak, címsorában Kitalálósdi - A másik a tippelés eredményét írja ki, neve
valaszablak, címsorában Válasz, a méretét
célszeru kisebbre venni.
200Komponensek
- Az elso ablakon egy edit komponens a tippeléshez
(neve tippedit, kezdetben üres), és egy button
komponens a második ablak elohívásához (neve
tippgomb, felirata TIPP) - A második ablakon egy label komponens a
választáshoz (neve kiir) és egy gomb az ablak
bezárásához (neve bezarogomb, felirata Jó) - A labelt nem szükséges láthatatlanná tenni, mert
a második ablak úgysem látszik induláskor.
201Beállítások
- form1.name tippablak
- tippablak.caption Kitalálósdi
- form2.name valaszablak
- valaszablak.caption Válasz
- tippablak.edit1.name tippedit
- tippablak.tag1be.text
- tippablak.button1.name tippgomb
- tippablak.tippgomb.caption TIPP
- valaszablak.label1.name kiir
- valaszablak.button1.name bezarogomb
- valaszablak.bezarogomb.caption Jó
202Változók
- Szükséges egy változó a véletlenszám tárolásához
(vszam) - Szükséges egy változó a tipp számként való
tárolásához (tippszam)
203Változódeklaráció
- Mindkét változó az egész programra vonatkozik,
ezért a program deklarációs részében kell
bejegyeznünk a következoket - vszam, tippszam integer
204Az eljárások
- 1. Eljárás (indításkor)
- A véletlenszámgenerátor bekapcsolása
- a szám kiválasztása
- 2. Eljárás (TIPP gomb)
- a szövegbeviteli mezo beolvasása
- a második ablak megfelelo feliratának beállítása
- a második ablak megjelenítése
- 3. Eljárás (Jó gomb)
- második ablak bezárása
2051. eljárás
- A tippablak onCreate eljárásának törzsébe írjuk
be a következot - randomize
- vszamrandom(100)1
2062. eljárás
- A tippgomb onClick eljárásához írjuk be
- tippszam StrToInt(tippablak.tippedit.text)
- if tippszam gt vszam then
- valaszablak.kiir.caption Ennél kisebbre
gondoltam. else - if tippszam lt vszam then
- valaszablak.kiir.caption Ennél nagyobbra
gondoltam. else - valaszablak.kiir.caption