Bevezet - PowerPoint PPT Presentation

1 / 317
About This Presentation
Title:

Bevezet

Description:

Bevezet s a DELPHI-be K sz tette: Pet L szl I. A program megtervez se BEVEZET S Windowsos alkalmaz sok fejleszt s hez j darabig csak a - legy nk ... – PowerPoint PPT presentation

Number of Views:81
Avg rating:3.0/5.0
Slides: 318
Provided by: pl289
Category:
Tags: bevezet | object | pascal

less

Transcript and Presenter's Notes

Title: Bevezet


1
Bevezetés a DELPHI-be
  • Készítette Peto László

2
I.
  • A program megtervezése

3
BEVEZETÉ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.

4
BEVEZETÉ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).

5
BEVEZETÉ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.

6
A Delphi megjelenése
  • A Delphi elindítása után a következo képernyovel
    jelentkezhet be

7
A 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.

8
A Delphi megjelenése
9
A 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.

10
A 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...

11
A 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.

12
A 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.

13
A 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.

14
A 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).

15
A 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.

16
Az 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.

17
Az 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, ...

18
Az 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.

19
Az 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.

20
A 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.

21
A 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ó).

22
A 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.

23
A 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.

24
A 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.

25
A 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.

26
A 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ó.

27
A 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

28
A 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.

29
A 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.

30
A 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.

31
A 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.

32
A 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.

33
A 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.

34
A 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.

35
Az 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.

36
Az 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ó.

37
A 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.

38
Az 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.

39
Az objektumfelügyelo
40
A 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.

41
A 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.

42
A 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ó

43
A 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.

44
A 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.

45
A 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.

46
Pró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.

47
Pró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.

48
Pró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.

49
Elso 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!").

50
Elso 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

51
Elso 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".

52
Elso 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

53
Elso 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!'

54
Elso 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

55
Elso Delphi programunk
  • procedure TForm1.FormClick(Sender TObject)
  • begin
  • Label1.Caption'Kattints ide!'
  • end

56
Elso 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.

57
Elso 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.

58
A 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

59
A második Delphi program
60
A 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).

61
A 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.

62
A 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.

63
A 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.

64
A 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.

65
A Standard lap komponensei
  • A komponenspaletta elso, Standard lapján a
    leggyakrabban használt komponenseket találjuk
    meg.

66
Az Additional lap komponensei
  • Egyéb, különlegesebb, de még mindig kissé
    általános jellegu komponensek gyujtohelye.

67
A Win32 lap komponensei
  • Néhány Windows stílusú kiegészíto elem található
    itt.

68
A Dialogs lap komponensei
  • A Dialogs lap komponensei a párbeszéd-ablakok
    néhány típusát segítik elkészíteni.

69
A System lap komponensei
  • A System párbeszéd-lapon rendszer- és egyéb
    alkalmazáskomponensek találhatók.

70
A 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.

71
A 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.

72
ActiveControl
  • 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.

73
AutoScroll
  • 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.

74
BorderIcons
  • 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.

75
BorderIcons
  • 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.

76
BorderStyle
  • 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.

77
Caption
  • 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.

78
ClientHeight, ClientWidth
  • A form hasznos, kereten belüli méretét lehet
    megadni pixelben.

79
Color
  • 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.

80
Ctl3D
  • Három- vagy kétdimenziós megjelenítésrol
    intézkedhetünk.

81
Cursor
  • Rengeteg kurzorforma közül válogathatunk, amely a
    form fölötti helyzetre értendo.
  • A súgóban meg lehet tekinteni.

82
Enabled
  • A form csak True állásban reagál külso
    eseményekre, False állapotban nem!

83
Font
  • 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.

84
FormStyle
  • 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.

85
Height
  • A form magasságát állíthatjuk be pixel egységben.

86
HelpContext
  • Súgó alkalmazása esetén használatos.

87
Hint
  • Ez is a súgóval kapcsolatos tulajdonság (a
    ShowHint tulajdonság True-ra állításánál aktív).

88
HorzScrollBar
  • 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.

89
Icon
  • 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.

90
KeyPreview
  • A billentyuleütéseket a False beállításkor a
    komponens, True választásakor pedig a form
    dolgozza fel.

91
Left
  • 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.

92
Menu
  • Menütervezésnél használjuk.
  • Külön lesz róla szó.

93
Name
  • 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.

94
ObjectMenuItem
  • OLE objektum menücímként való kezelésekor
    használjuk.

95
PixelsPerInch
  • 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é.

96
PopupMenu
  • A helyi vagy gyorsmenü nevét adhatjuk meg.

97
Position
  • 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.

98
PrintScale
  • 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.

99
Scaled
  • A PixelsPerInch tulajdonságnál volt róla szó.

100
ShowHint
  • A Hint tulajdonságnál volt róla szó.

101
Tag
  • Egész számot adhatunk meg, amivel információt
    tárolhatunk az adott objektumról.

102
Top
  • A form helyzetét állíthatjuk be a képernyo
    tetejétol (pixelekben mérve).
  • Lásd Left tulajdonság is!

103
VertScrollBar
  • Lásd a HorzScrollBar-nál leírtakat.

104
Visible
  • A form látható vagy sem (futási idoben).

105
Width
  • A form szélességi méretét lehet beállítani
    pixelekben.

106
WindowMenu
  • MDI alkalmazásoknál ablakmenüt lehet a formhoz
    rendelni.

107
WindowState
  • 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.

108
A 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.

109
OnActivate
  • Akkor használódik, amikor az inputfókusz
    áttevodik a formra

110
OnClick
  • A formra való kattintás váltja ki.
  • Elso Delphi programunkban már használtuk.

111
OnClose, 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).

112
OnCreate
  • 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.

113
OnDblClick
  • Kétszeres egérkattintás váltja ki.

114
OnDeactivate
  • 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).

115
OnDestroy
  • A memória-felszabadítás eszköze ablakbezáráskor.

116
OnDragDrop, OnDragOver
  • Az egér mozgását figyelo események (l. még
    OnMouse...).

117
OnHide
  • Az ablak elrejtésekor következik be.

118
OnKeyDown, OnKeyPress, OnKeyUp
  • A billentyuleütéseket figyelo események.

119
OnMouseDown, OnMouseMove, OnMouseUp
  • Az egér mozgását figyelo események (l. még
    OnDrag...).

120
OnPaint
  • Ha az ablak egy részét ideiglenesen eltakarta
    valami (pl. egy másik ablak), akkor az
    újrarajzolásról itt kell gondoskodni.

121
OnResize
  • Az ablak átméretezésekor az elemek áthelyezését
    és átméretezését itt kell megoldani.

122
OnShow
  • A form megjelenése elott bekövetkezo esemény.

123
A 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).

124
A 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.

125
Align
  • 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.

126
Alignment
  • A szövegmezon belül a szöveg elrendezését
    oldhatjuk meg.
  • taCenter Középre rendez.
  • taLeftJustify Balra rendez.
  • taRightJustify Jobbra rendez.

127
AutoSize
  • True állásnál a címke felveszi a szöveg méretét,
    False állásnál nem.

128
Transparent
  • 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.

129
Wordwrap
  • True esetén sortörést állítunk be.

130
A TEdit komponens
  • Egysoros szövegmezo, ahova a felhasználó beírhat
    valamit, de néha üzeneteket is megjelenítenek
    benne.

131
AutoSelect
  • True állásnál ha a fókusz a mezore kerül, akkor a
    benne lévo szöveg kijelölodik.

132
AutoSize
  • True állásnál a szerkesztési terület magassága a
    választott betumérethez igazodik, szélessége
    azonban nem változik.

133
CharCase
  • 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.

134
HideSelection
  • 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.

135
MaxLength
  • A begépelheto karakterek számát adhatjuk meg.

136
PasswordChar
  • 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.

137
ReadOnly
  • True állásnál csak olvasható a szöveg, nem
    szerkesztheto.

138
Text
  • A mezoben megjeleno kezdeti szöveg.

139
A 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.

140
Lines
  • 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.

141
WantsTabs
  • 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.

142
WantReturn
  • True esetén a felhasználó az Enter-rel sort
    emelhet, False esetén az Enter-t a form kapja meg
    feldolgozásra.

143
A 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.

144
A 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.

145
Glyph
  • 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.

146
Kind
  • Tizenegy különbözo Delphi-szabvány szerinti gomb
    közül választhatunk

147
Layout
  • Az ábra helyzetét határozhatjuk meg (balra,
    jobbra, fel, le).

148
Margin
  • A gomb és kerete közötti távolság megadása.

149
NumGlyphs
  • Egy gombon több, de maximum négy azonos méretu
    kép is elhelyezheto.
  • Ezek számát állíthatjuk be itt.

150
Spacing
  • A felirat és a keret közötti távolság megadása.

151
A 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).

152
A 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.

153
A 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.

154
A 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.

155
A 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.

156
Tervezé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

157
Ké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

158
3. program
  • Szöveg kiíratása az értékadó utasítás

159
Szö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

160
Ablakok
  • Az ablak címsorán a felirat legyen a program neve
    (a Formot nevezzük el kiirablak névre)

161
Komponensek
  • 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.

162
Beállítások
  • form1.name kiirablak
  • kiirablak.caption kiíró
  • kiirablak.label1.name szoveg
  • kiirablak.szoveg.font tetszolegesen állítható

163
Utasí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ó!)

164
4. program
  • Szöveg bevitele

165
Szö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!

166
Ablakok
  • Egy ablakra van szükségünk. A form neve legyen
    koszono, a címsorába Köszöno kerüljön!

167
Komponensek
  • 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ó

168
Beá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

169
Eljá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)

170
5. program
  • Egész típusú eredmények kiíratása

171
Egé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.

172
Szö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.

173
Egé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

174
Ablakok
  • Egyetlen ablak szükséges, a neve legyen
    osszeadas, a címsorában Összeadás jelenjen meg!

175
Komponensek
  • 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ó

176
Beá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

177
Vá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)

178
Vá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

179
Eljá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

180
Mentés, futtatás
  • otodik.pas otodikpr.dpr
  • otodikpr.exe

181
6. program
  • Valós típusú eredmények kiíratása

182
Való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.

183
Szö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.

184
Való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

185
Né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.

186
Ablakok
  • A program egyetlen ablakot igényel, neve legyen
    gyokablak, címsorába Négyzetgyökszámítás kerüljön.

187
Komponensek
  • 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ó

188
Beá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

189
Vá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)

190
Vá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

191
Az 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

192
Mentés, futtatás
  • Hatodik.pas Hatodikpr.dpr
  • hatodikpr.exe

193
7. program
  • Az If utasítás

194
Az 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

195
Az if utasítás
If
Logikai kifejezés
true
false
THEN ág utasításai
ELSE ág utasításai
196
Megjegyzések
  • Ha valamelyik ág csak egy utasítást tartalmaz,
    akkor a begin end páros elhagyható.
  • ELSE ágnak nem szükséges lennie.

197
Feladat
  • 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.

198
Vé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)

199
Ablakok
  • 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.

200
Komponensek
  • 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.

201
Beá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ó

202
Vá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)

203
Vá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

204
Az 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

205
1. eljárás
  • A tippablak onCreate eljárásának törzsébe írjuk
    be a következot
  • randomize
  • vszamrandom(100)1

206
2. 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
Write a Comment
User Comments (0)
About PowerShow.com