delphi tanfolyami jegyzet.pdf

Upload: laszloczigany

Post on 12-Apr-2018

265 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    1/176

    DELPHItanfolyami

    jegyzet

    Barhcs Oktatkzpont

    2004.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    2/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    2.

    Delphi elmleti alapok

    Bevezets

    Windows alap alkalmazsok fejlesztshez j darabig csak a C nyelv lltrendelkezsre. Mikor a Microsoft kihozta Visual Basic nev, komponens alapfejleszt rendszert, a Borland is elrkezettnek ltta az idejt, hogy - miutn mrkorbban megjelentette npszer Turbo Pascal programnyelvt Windowsosvltozatban - vizulis fejleszti krnyezettel lssa el a Pascal-t. gy szletett meg aDelphi, egy integrlt fejleszti krnyezetben (Integrated Development Environment)fut vals idej fejlesztrendszer. Knnyedn s gyorsan hozhatunk ltresegtsgvel ignyes, bonyolult Windows krnyezetben fut programokat,ksznheten a RAD (Rapid Application Development) felletnek. A korszerfordttechnika eredmnyeknt optimalizlt s gyors futs programot nyernk. A Delphi

    ugyanis a forrskd lefordtsa utn valdi, vgrehajthat gpi kdot llt el(szemben pl. a Visual Basic interpreter tpus programmal, mely a forrskdot futsiidben rtelmezi).Programozs: A Delphi programozshoz jszer, vizulis fejleszti stlus "illik", ahagyomnyos programnyelvekben jratos programozknak j programozsitechnikhoz kell hozzszokniuk. Ennek ellenre - minthogy a Delphi a Pascal nyelvrepl - alkalmazshoz szksg van bizonyos Pascal ismeretekre, nem vletlenteht, hogy a korbbi modulok egyikben mr megismerkedtnk a Pascalkrnyezetvel. Az Object Pascal programozi nyelvezete az angolra pl, s maga aDelphi feliratok, menk, zenetek stb. is angolul szerepelnek. Ezrt elnyt jelenthetaz angol nyelv bizonyos szintismerete.

    Jegyzetnk a kezd felhasznlk szmra ad ttekintst a Delphi 5.0 32 bitesrendszer hasznlatrl. Teljes kr ismertetsrl termszetesen nem lehet sz, atmrl knyvek tucatjai jelentek meg. Ezrt a rszletesebb informcikat referenciaknyvekbl kell beszerezni.Javasolt irodalom:Paul Kimmel: Delphi 6 fejlesztk kziknyve (Panem kiad)Marco Cantu: Delphi 5 (kt ktetes Kiskapu kiadvny)Telepts: A Delphi teleptse sorn rendszergazdai jogosultsgokkal kellrendelkeznnk, ugyanis a telepts sorn a jogosultsgok hinyban elfordulhat,hogy a komponensek nem, vagy nem megfelelen jelennek meg. Tovbbi problmtjelent majd, hogy a Standard telepts sorn a teleptaz Interbase-nek csak a kliens

    vltozatt telepti fel, ami az adatbzis-kezelsnl a ksbbiek sorn problmtjelent. Ezt elkerlend, a teleptskor az Interbase felletnek teljes teleptstkrjk, hogy gpnk Server-knt is mkdhessen.Ha a telepts sikeresen befejezdtt, a startmenben a programok kzttmegtallhatjuk a Delphi 5-t, az Interbase kezelszerveit, s az InstallShield Expressprogramot, mely a Delphiben ksztett alkalmazsainkhoz knl telept kszletet.Ezen kvl a vezrlpultban megjelenik mg a BDE (Borland Database Engine)adminisztrcis fellet is, ahol az adatbzis-kezelshez szksges belltsokvgezhetek el.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    3/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    3.

    1. A Delphi megjelenseA Delphi elindtsa utn a kvetkezkpernyt fogjuk ltni:

    A Delphi fejlesztkrnyezet ngy fterletbl ll:

    - a fejrszbl, ami a ment, az eszkztrakat, s a komponens palettttartalmazza,

    - a bal oldalt lthat objektum-felgyelbl(Object Inspector),- a formszerkeszt(vagy rlapszerkeszt) ablakbl,- s az rlapszerkesztltal rszben eltakart kdszerkesztbl.

    Ez utbbi gy vlik lthatv, ha a formszerkeszt alatt lthat rszre kattintunk,vagy megnyomjuk az F12 billentyt.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    4/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    4.

    1.1. A Delphi munkaterlet fejrsze

    1.1.1. A menBrmilyen szraznak is tnhet a kvetkez rsz, a menk tbb-kevsb rszletesismertetse kikerlhetetlen. Elzetesen csak annyit kell megemlteni, hogy a Delphimenje is helyzetrzkeny, azaz esetenknt a legrdl menlista ttelei attl isfggnek, hogy ppen milyen mveletet vgznk.

    A File men

    New...: A menpont kivlasztsakor egy sszefoglal jelleg, tbblaposprbeszd-ablak jelenik meg (New Items), ahonnan j projektet, vagy mselemeket vlaszthatunk.

    A New lapon j projektetnyithatunk meg, vagy pl.rlapot (formot) vagy forrst(unitot) adhatunk a projekthez.

    A Project1 lap a mr kszformok talaktst, bellk jformok ellltst teszilehetv. A Dialogs laprlnhny tpus prbeszd-ablakksztshez nyjt segtsget.,A Projects oldal a tbbdokumentumbl (MDI MultipleDocument Interface) s az egydokumentumbl (SDI SingleDocument Interface) ll

    felletet tartalmaz projekthez nyjt segtsget. A Data Modules lapon pedig azadatkezelformok ksztshez kapunk segtsget.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    5/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    5.

    New Application: Innen egyszerbben nyithatunk j projektet. New Form: j formot (rlapot) adhatunk a projecthez. New Data Module: Adatbzis jellegformot kezdhetnk pteni. Open...: Ltez unitot vagy formot nyithatunk meg, amit egyttal a

    projektnkhz hozz is adhatjuk.

    Reopen: A legutbb hasznlt nhny projekt ill. fjl nyithat meg innen. Save: Elmenthetjk az aktulis fjlt. Save As...: Msik nv alatt menthetjk el a fjlt. Save Project As...: A projectet j nven menthetjk el. Save All: A projecthez tartoz sszes fjlt elmenthetjk. Close: Bezrhatjuk az aktulis fjlt. Ha mg nem volt elmentve, a Delphi

    rkrdez a mentsre. Close All: Az sszes megnyitott fjlt bezrhatjuk. A nem mentettekre a Delphi

    rkrdez. Use Unit: A unitok kezelst knnyti meg (ha tbb unitbl ll a project).

    Print: Nyomtats. Exit: A Delphibl val kilps egyik lehetsge.

    Az Edit men

    Undelete vagy Undo s Redo: A szoksos visszavons-visszallts pr.

    Cut: Kivgs. Copy: Msols. Paste: Beilleszts. Delete: Trls. Select All: A szvegszerkeszt ablak minden sort kijelli

    (formszerkesztben minden elemet). Align to Grid: Rcs, amelynek segtsgvel pontosan

    helyezhetk el a komponensek a formokon. Bring to Front: A kijellt objektumot a tbbi fl helyezi, ... Send to Back: ... ez pedig al. Align: Prbeszdablak segti a precz komponens-

    elhelyezst. Size: A kijellt objektum pontos mreteit llthatjuk be. Scale: A komponens nagythatsgrl tudunk itt intzkedni. Tab Order: Egy formon azt lehet belltani, hogy a Tab billentyvel milyen

    sorrendben lpkedjk vgig a komponenseken. Creation Order: A nem vizulis komponensek ltrehozsa. Flip Children almen: a kivlasztott, vagy az sszes elem elrendezsnek

    mdostsra ad lehetsget. Lock Controls: A form elemeinek rgztsre val.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    6/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    6.

    A Search men

    Find...: Szveget kereshetnk vele. A megnylprbeszdablakban megadhat a szveg,

    megadhat, hogy megklnbztesse-e a kis- snagybetket (Case sensitive), vagy hogy csak teljesszavakat kell-e keresni (Whole words only).Megadhat a keress tartomnya, azaz hogy a teljesszvegben, vagy csak a kijellt blokkban kell-ekeresni (Global, Selected), a keress irnya elre,vagy vissza (Forward, Backward) trtnjen stb.

    Find in Files: Az llomnyokon belli keress. Replace...: Szveget cserlhetnk, a Text to find

    sorba a keresend, a Replace with sorba a csereszveget kell berni. Akeressi funkcinl megismert belltsi lehetsgek itt is megvannak. AReplace all bekapcsolsval valamennyi elfordulst automatikusan lecserli.

    Search Again: A keressi, illetve csere mvelet ismtelhet. Incremental Search: Ez is keress, de begpels kzben a keresett szveghez

    ugrik. Go to Line Number...: A megadott szm sorra ugrik a kurzor. Find Error: A fordts vagy futtats utni hiba helyre ugrik. Browse Symbol: Szimblumot kereshetnk (csak fordts utn hasznlhat).

    A View men

    Project Manager: A Project Manager ablakmegjelentsre val. Itt tallhat a projectvalamennyi llomnya az elrsi tvonalakkal,nevekkel, bvtsi lehetsgekkel.

    Object Inspector: Az objektum-felgyel ablakotjelenti meg.

    To-Do List: A tennivalink listja, emlkeztetksajt rsznkre.

    Alignment Palette: A megnyitott ablakban akijellt elemeket egyszeren rendezhetjk el.

    Browser: Csak lefordtott program esetnmkdik. Osztlyok, metdusok hivatkozsait,hatskrt tekinthetjk meg a segtsgvel.

    Code Explorer: A Unitban (kdunkban) valnaviglst teszi egyszerbb.

    Component List: Azon komponensek listja,amiket elhelyezhetnk a formon.

    Window List: A Delphiben megnyitott ablakokmegjelentsre val.

    Debug Windows almen: A beptett Debuggert(hibakerest) indthatjuk el.

    Desktops almen: A Delphi kpes az aktulis Desktop mentsre. Toggle Form/Unit: A form s a unit kztt kapcsolgathatunk.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    7/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    7.

    Units: A projektben lvunitok jelennek meg. Forms: A projektben lvformok jelennek meg. Type Library: Az objektum tpusokrl kaphatunk bvebb informcit. New Edit Window: j szvegszerkeszt (kdszerkeszt) ablak nylik meg,

    mellyel a forrskd szveg klnbzrszeit szerkeszthetjk.

    Toolbars almen: Az eszkztraink megjelentst, testreszabst teszilehetv.

    A Project men

    Add To Project: Formot vagy unitot adhatunk aprojectnkhz, ...

    Remove From Project: ... ezzel pedig eltvolthatjuk. Import Type Library: Importlhatunk kls

    objektum tpus knyvtrakat.

    Add to Repository...: Ha olyan formot ksztettnk,amit mskor is fel akarunk hasznlni, felvehetjk akellktrba.

    View Source: A forrs megtekintse. Add New Project: A meglvproject mell jabbat

    indthatunk. Add Existing Project: A ltez projectbe

    meghvhatunk korbbi projectet. Compile All Projects: A mdostott forrskd

    lefordtsra val. Build All Projects: A projekt sszes unitjt lefordtja.

    Syntax Check: Ellenrzi a kd szintaktikjt.Futtats, de fordts eltt is rdemes elvgezni.

    Information...: A lefordtott fjlrl szolgltat adatokat. Web Deployment Options: A Web szerverre kszlt ActiveX komponensekkel

    elltott form konfigurlst teszi lehetv. Web Deploy: A fenti konfigurci utn hasznlhat az objektumaink

    belltshoz. Options...: Tbboldalas prbeszd-ablakban lehet klnbz belltsokat

    vgrehajtani az ltalunk ksztendprojecten.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    8/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    8.

    A Run men

    Ebben a menpontban a futssal, futtatssal kapcsolatos lehetsgeket tallhatjukmeg.

    Run: Futtatja a programot. Ha a programszvege megvltozott, akkor elbb automatikusfordtsra s szerkesztsre kerl sor (jegyezzkmeg az F9 billentyt, a futtatshoz).

    Attach To Process: Az aktulisan futfolyamat ellenrzse.

    Parameters: Futsi paramterek belltsraval.

    Register ActiveX Server: Az ActiveX szerverregisztrlsa,

    Unregister ActiveX Server: illetve annak trlse. Step Over: A programfuts kvetsre val.

    Szubrutinokba nem megy be (F8). Trace Into: A programfuts soronknti

    kvetsre val. Szubrutinok hvsakor aszubrutinok utastsain is vgigmegy a program(F7 funkcibillenty).

    Trace to Next Source Line: Lps a kvetkezprogramsorra.

    Run to Cursor: Nem fut vgig a program, csak az aktulis kurzorpozciig (F4). Run Until Return: Az aktv folyamat futtatsa a visszatrsi rtkig.

    Show Execution Point: Megmutatja a kvetkezprogramsort. Program Pause: Felfggeszts. Program Reset: Befejezi a lpsenknti futtatst. Inspect: A kivlasztott elemrl futsi idben megjelenti az informcikat. Evaluate/Modify...: A programfuts sorn keletkezett vltoz rtkekre lehet

    rkrdezni az Expression (kifejezs) mezben, az rtkek a Result (visszatrsirtk) mezben jelennek meg.

    Add Watch...: Egy figyelend vltozt lehet berni, a programfuts sornfigyelemmel ksrhetaz rtk alakulsa.

    Add Breakpoint...: Trspontokat lehet beszrni a programba.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    9/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    9.

    A Component men

    New...: j komponenseket kszthetnk ha nemtartjuk elegendnek a felknlt lehetsgeket.

    Install Component...: Ksz, vsrolt, letltttkomponenseket telepthetnk a Delphikomponensknyvtrba.

    Import ActiveX Controll: ActiveX elemekimportlsa.

    Create Component Template: tmenetikomponensknyvtrak ltrehozsa.

    Install Packages: Specilis dinamikus knyvtrak csatolsnak lehetsge. Configure Palette...: A komponenspaletta testreszabsa.

    A Database men

    Explore: Betlti a Database Explorert, amely lehetv tesziaz adatbzis-struktrkban val keresst, szerkesztst.

    Form Wizard...: Adatbzis beviteli kpernyk, formokksztst segti.

    A Tools men

    Environment Options...: Tbblapos prbeszd-ablakban a Delphi klnbzbelltsait lehet

    elvgezni. Editor Options: A szerkesztvel kapcsolatos

    belltsok Debugger Options: A hibakeresvel kapcsolatos

    belltsok. Repository...: Az Add to Repository paranccsal

    ltrehozott kellktrhoz val hozzfrs. Configure Tools...: A Delphi-hez adott eszkzk

    elrse. Database Desktop: Adatbzis kezelsi fellet indtsa.

    Package Collection Editor: A teleptett csomagok szerkesztsnek lehetsge. Image Editor: a Delphi program kpszerkeszt-rajzol eleme.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    10/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    10.

    A Help men

    Delphi Help: A Delphi 5 sgja, felhasznli szinten. Delphi Tools: A Delphi 5 sgja fejlesztknek.

    Windows SDK: Fejleszti kziknyv a Delphihez. Borland Home Page: www.borland.com Delphi Home Page:

    www.borland.com/delphi/index.html Delphi Developer Support:

    http://info.borland.com/devsupport/delphi/ Delphi Direct: Egy beplmodul, mely az

    interneten keres segtsget. Customize: Nylt segtsg, a gpre teleptett valamennyi sg ignybe

    vtelvel.

    About...: A minden programhoz jr Nvjegy Delphi vltozata.Egyltaln nem fontos, de rdekes: ha az About ablakot megnyitottuk s az Alt gomblenyomott llapotban berjuk: team, akkor megtekinthetjk a Delphi ltrehozsbankzremkdcsapat nvsort. Ha hasonl mdon a developers szt rjuk be, akkora fejlesztk neveit olvashatjuk.

    1.2. Az eszkzpalettaLthat, hogy a Delphi 5.0 ablakai a Windowsban megszokott jellemzkkel brnak:cmsor, ablakkezelgombok, vezrlmen stb. A Delphi cmsora a Delphi 5 Project1feliratot viseli (ez a felirat azonban a klnbz llapotoknak megfelelen - pl.ments utn rtelemszeren vltozik). A men 10 ttelt tartalmaz, amelyekbl

    szabvnyos legrdlmenk jelennek meg. Az itt tallhat parancsok gyakrabbanhasznlhat rsze a mensor alatt, baloldalon tallhat eszkzpalettn ismegtallhat ikonknt. Ezek a gombsorok termszetesen testreszabhatak, azazolyan gombokkal egszthetk ki, amiket munknk sorn gyakran hasznlunk, akevsb hasznlatosak pedig eltvolthatk. A gombok funkcijrl sgcmke adtjkoztatst, azaz ha valamelyikre rllunk az egrkurzorral, egy keretben lvfelirat (buborkablak) mondja meg, mire is val. Az alapbellts nyomgombokatmutatjuk be a kvetkezkben:

    New Elindtja az j elemek prbeszdablakot.

    Open Felknlja a megnyits ablakot

    Save Az aktulis UNIT mentse.

    Save All A UNIT, a Formok, s a Project mentse.

    Open Project MeglvProject megnyitsa

    Add File To Project llomny hozzadsa az aktulis Projecthez

    Remove file from project Eltvoltja a kivlasztott elemet a projectbl.

    View Form Megnyitja a form-megjelentprbeszd-ablakot.

    Toggle form/unit A fkuszt a formrl a unitra helyezi t, illetve fordtva.

    http://www.borland.com/http://www.borland.com/delphi/index.htmlhttp://info.borland.com/devsupport/delphi/http://info.borland.com/devsupport/delphi/http://www.borland.com/delphi/index.htmlhttp://www.borland.com/
  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    11/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    11.

    New form j formot ad a projecthez.

    Run Futtatja a projectet.

    Pause Meglltja a project futtatst.

    Trace into Soronknti futts.Step over Ez is, de az eljrsokba nem megy bele.

    1.3. A komponenspaletta

    A komponenspalettn alapesetben 15 lapon, tematikus csoportokba gyjtvetallhatk a Delphi komponensei.

    Mr a Standard lapon tallhat elemekkel felpthet egy tlagos form, azazWindows ablak (men, gombok, jell ngyzetek, rdigombok stb.felhasznlsval), az esetleg mg szksges komponensek a tovbbi lapokontallhatk. A form szerkesztse gy trtnik, hogy a komponenseket az adott gombrakattintva kivlasztjuk, majd a form egy adott helyre kattintva elhelyezzk a formfelletn. Az egyes elemek tulajdonsgait az Object Inspector-ban (objektum-felgyel) llthatjuk be.

    1.4. Az objektum-felgyelAz Object Inspector voltakppen egy ktlapos prbeszd-ablak, ahol bellthatjuk aform s a komponensek tulajdonsgait (nv, mret, szn, betk stb.). Ez trtnik a

    Properties nev lapon. Az Events (esemnyek) lapon pedig az egyes elemekhezkapcsold esemnyekrl (pl. egrkattints, billentylets stb.) intzkedhetnk. Azobjektum-felgyelben mindig a formszerkesztn aktv (vagyis kijellt) elemtulajdonsgai llthatk be, illetvemdosthatak.

    A tulajdonsgok az ABC beti szerint nvekvsorrendben helyezkednek el, fentrl lefel, gyviszonylag knnyen megtallhatjuk amegvltoztatni kvnt tulajdonsgot feltve, haismerjk annak angol nevt.

    A Delphi objektumainak termszetesen eltresemnyeik lehetnek, gy az esemnyek rszletesfelsorolstl itt most eltekintennk, a pldafeladatoksorn a legjelentsebbeket meg fogjuk ismerni

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    12/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    12.

    1.5. A formszerkesztA formszerkeszt az a fellet, amelyen a tervezett Windows ablakot kialaktjuk. Aformon (rlapon) kell elhelyezni a ment, gombokat stb., az objektum-felgyelbenpedig megadhatjuk ezek tulajdonsgait. Mr maga a form is egy teljes, mbr resWindows ablakot takar. Ha lefuttatnnk, egy olyan res Windows ablakot kapnnk,

    amit mretezhetnk, thelyezhetnk, hasznlhatnnk az ablakgombokat, de mg arendszerment is.

    A fenti brn egy nyomgomb komponenst helyeztnk az rlapra. A form felletn akomponensek elhelyezst pontozott rcs segti.Az ablakmodellek lerst a Delphi .DFM (Delphi Form) kiterjesztsllomnyokbantrolja.

    1.6. A kdszerkesztablakA kd- (szveg-) szerkeszt ablak alapesetben a formszerkeszt alatt alig lthat.Akkor tnik el, ha a kilg als rszre kattintunk, vagy megnyomjuk az F12funkcibillentyt. Ennek eredmnyeknt a fent elhelyezked rlapunk elttmegjelenik az addig a httrben meghzd UNIT ablak a kvetkez bra szerintiformban:

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    13/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    13.

    Az ablakban az eddig "megrt" Object Pascal nyelvkdszveget lthatjuk. A Delphiugyanis az ltalunk vizulis mdon szerkesztett form, illetve a komponensek Pascal-kdjt rgtn beilleszti az aktulis unit megfelel helyre. A unitok fjljai .PASkiterjesztsek. Minden egyes formhoz tartozik egy unit (de termszetesen ltezikform nlkli unit is). Egy program al ltalban tbb form s tbb unit is tartozik.

    Maga a program (azaz a project) kdja is megtekinthet, ha a View men UNITparancst vlasztjuk, s ott kivlasztjuk a Project1-et. A projekt forrskdja .DPRkiterjesztsllomnyban troldik.

    Br az brk szerinti kdszerkeszt ablak a kdszvegnek csak kis rszt lttatja(valjban ezek is mretezhetablakok), annyi mris kitnik, hogy az Object Pascalszvegszerkesztje - a Turbo (Borland) Pascal 7.0 halad hagyomnyait kvetve -automatikusan kiemeli a programnyelv kulcsszavait, a megjegyzseket pedig dlt

    kk bet

    kkel rja.ElsDelphi programunk:

    Miutn a Delphi kezelsnek alapvet informciit elsajttottuk, itt az ideje, hogyelksztsk els nll alkalmazsunkat. Ennek keretn bell ismerhetjk meg aDelphi felptst, a klnbzllomnyok szerkezett, azok mentsnek alapvetszablyait, s a nvkonvecikat, vagyis az objektumok elnevezsi szablyait.

    Indtsuk el a Delphit az asztalon tallhat Delphi 5 parancsikon segtsgvel. Miutnbetltdtt az sszes szksges rendszerkomponens, a kvetkezkpernyt fogjuk

    ltni:

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    14/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    14.

    Tulajdonkppen mr el is kszlt egy nllan futtathat szabvnyos Windowsablak, amit meg is tekinthetnk, ha a Run menpont Run parancst vlasztjuk (vagymegnyomjuk az eszkztron tallhat Run ikont, esetleg letjk az F9 billentyt).

    Ennek eredmnyekppen elindul az alaprtelmezetten Project1-nek nevezettalkalmazs, ami nem ms, mint egy teljes rtk Windows ablak, a szoksostulajdonsgokkal (cmsor, vezrlmen, tmretezhetfellettel).Ha figyelmesen megvizsgljuk lthat, hogy a megjelenablak htterben a Delphikezelfellete vltozatlanul megtallhat, de futsidben az Objektum felgyelnemlthat. Amennyiben a Delphit eltrbe hozzuk, akkor lthatv vlik a UNIT,amennyiben pedig a tlcra tesszk a Delphit, akkor pedig csak a fut alkalmazslesz lthat:

    Alapesetben A Delphit aktivlva A Delphit tlcra tve

    Annak rdekben, hogy ne rhessenek bennnket a ksbbiekben meglepetsek,clszer az alkalmazs kezdetn mentst krni. Zrjuk most be az ppen futProject1nevalkalmazst, melynek legegyszerbb mdja az, ha bezrjuk a Project1ablakot az X (bezrs gomb) mentn. Ekkor azonnal visszakerlnk a Delphi

    fejleszti krnyezetbe, a Formot jra tervezs alatt fogjuk ltni s visszakapjuk azObjektum felgyelt is.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    15/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    15.

    Ha cltudatosan fejlesztnk, akkor a program indtsakor megjelen ablakban mrkrhetjk is a mentst, amit clszera Save All funkcival kezdemnyezni, hiszenekkor kerl mentsre a Unit, a hozz tartoz Form, valamint a Project is.Mivel a Delphi fejleszts sorn egy project tbb llomnybl ll, gy mindenalkalmazst, amit fejlesztnk nll knyvtrba clszer elmentennk. Ennek

    rdekben tegyk most a tlcra a Delphit, indtsuk el az Intzt, s a Hallgatmeghajt Sajtnv knyvtrunkban hozzunk ltre egy DELPHI alknyvtrat.Lpjnk be ebbe a knyvtrba, s hozzunk ltre egy jabb alknyvtrat HELLOnven. Leendalkalmazsunk majd egy egyszerprbeszdablakot fog megnyitni,melyben a szoksos Hell Vilg! feliratot jelentjk meg, ezrt adjuk most aknyvtrunknak a HELLO nevet. Lpjnk be a HELLO mappba is, majd tegyk atlcra az Intzt.Vegyk fel a tlcrl a Delphit, menjnk fel a File menre, s vlasszuk a Save Alllehetsget (esetleg az eszkztron lv gombot megnyomva). Ennek eredmnyeegy prbeszdablak megjelense lesz, melybena Delphi elsknt a Unit mentsre krdez r.

    Mi most a Unitot Uhello nven szeretnnkelmenteni, az elzleg ltrehozott HELLOmappba. rjuk teht be a Fjlnvhez: Uhello,(kiterjesztst nem kell adnunk,alaprtelmezetten PAS lesz majd) az ablakfels rszben pedig a Hely-nl tallzzuk ki azelbb ltrehozott HELLO knyvtrat. Hameggyzdtnk rla, hogy minden rendben,akkor krjnk mentst:

    Mieltt boldogan htradlnnk, ltni fogjuk,hogy csupn a Unit mentse nem elg aDelphinek. Mivel a Save All funkcitkezdemnyeztk, gy most a Projectet is el kellmentennk. Legyen a neve: Phello, (akiterjesztse automatikusan DPR lesz) skerljn ez is az elzHELLO knyvtrunkba:

    Delphi llomnyok:Ellenrizzk a mentst, vegyk fel a tlcrl az Intzt, s ha mindent jl hajtottunk

    vgre, ltni fogjuk az Uhello.pas, s a Phello.dpr llomnyokat s mg nhnyrdekes llomnyt. A Unitunk mentse sorn a Delphi kt llomnyt hozott ltre ahttrben: az egyik az ltalunk mentett:

    - Uhello.PAS, a msik pedig az automatikusan ltrejv- Uhello.DFM, amirl volt mr sz korbban: a Formunk kdja. Ezt kveten

    amikor mentettk a Projectet, akkor jtt ltre maga a- Phello.DPR(a Delphi project llomnya), a- Phello.DOF (a projecthez tartoz belltsokat tartalmazza, melyeket a

    Project/Options almenbl kezdemnyezhetnk), a- Phello.RES, (mely a Delphi project szmra szl Windows erforrs-

    informcikat tartalmazza) s a

    - Phello.CFG(az aktulis projectnk konfigurcis llomnya).

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    16/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    16.

    A tevkenysgnk sorn tovbbi llomnyok is ltrejnnek majd, pldul az tmenetiDCU llomnyok, melyek tmeneti llomnyok, s a mg nem mentettvltoztatsainkat troljk. Rgtn addhat a krds: de hogyan lesz ezekblfuttathat llomny? A vlasz roppant egyszer: futtassuk most jra a mr elmentettDelphi munknkat, majd nzzk meg az intzt, s ltni fogjuk a Projectnk nevvel

    megegyeznevEXEllomnyt is. Vagyis a Delphi az elsfuttats sorn ltrehozzaaz aktulis knyvtrunkban az exe llomnyt, amit minden kvetkezfuttatskor fellfog rni.

    Ezzel az alapok megvannak, az EXE llomnyunk mr nllan futtathat.Csinostsunk akkor most a felleten, ksztsk el teljesen az alkalmazst.Trjnk vissza a Delphihez, hozzuk eltrbe aformot, s az objektum felgyelben gyzdjnkmeg rla, hogy a Formunk (Form1) tulajdonsgailthatak. Adjunk nevet az rlapunknak, keresskmeg a Properties fln a Name tulajdonsgot, svltoztassuk meg: frmHello-ra. (Megjegyzs: azelnevezseknl trekedjnk majd az egysgessgre,hiszen amennyiben tbb objektum lesz majd aformon, nehezen fogjuk tudni eldnteni, ppen

    melyik objektumrl is van sz. A ksbbiekbennhny tancsot adunk majd ezzel kapcsolatosan.)

    Mint lthat, az rlap nevnek vltoztatsa ahttrben megvltoztatja a kdot is, gy azobjektumkezelben most mr a formunk nevefrmHello. Ezzel egyidben a formunk fejlcben ismegvltozott a felirat, amit a kvetkez lpsben aCaption tulajdonsg fellrsval lltsunk dvzlkpernyre.Vltoztassuk mg meg a form mrett is: a ClientHeight rtke legyen 200, a Client Width pedig 300. Ezzel a form mrete az ltalunk

    meghatrozott rtkre (200*300 pixel, vagy kppont) cskken:Amennyiben elgedettekvagyunk az eredmnnyel,krjnk mentst a Save Allsegtsgvel, s futtassuk azalkalmazsunkat.Tovbb csinosthatjuk akpet, ha a Captiontulajdonsgban szereplfeliratot megprbljuk azablak kzepre pozcionlni

    oly mdon, hogy az dvzl

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    17/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    17.

    kperny felirat el szkzket tesznk.Mivel a fejleszts vals idben trtnik, gy a vltoztatsaink azonnal ltszani fognaka kpernyn.Ideje elhelyezni a tervezett feliratot a formon, amihez a Standard komponenspalettaLabel elemt kell kivlasztanunk. Ha bekapcsoltuk az eszkztron a Label

    komponenst, vigyk az egereta formra, s kattintsunk egyettetszleges helyen. Megjelenika Label1 nev komponens,ennek megfelelen azobjektumkezelben annaktulajdonsgai lesznekhozzfrhetek, aktvak.Keressk ki a Captiontulajdonsgot, s Label1-rlrjuk t: Hell Vilg!-ra:

    Ha futtatunk, mr ltszik a kvnt felirat, de mg nem igazn tkletes. Haszeretnnk belltani a felirat formai jellemzit, akkor tervezs alatt azobjektumkezelben a font tulajdonsgot kell megkeresnnk. Itt lehetsgnk van aFont felirat eltt elhelyezked pluszjelrekattintva megjelenteni a jellemzket, amikblaztn lenyl listk segtsgvel vltoztathatjukmeg a szksgesnek tlteket. Ennekegyszerbb mdjra is lehetsgnk van, hanem a pluszjelre kattintunk, hanem a font feliratmgtt elhelyezked ikonra. (ezt csak akkorfogjuk ltni, ha aktvv tesszk a fonttulajdonsgot, vagyis ha rkattintunk). Ekkorsokkal bartsgosabb mdon, egyprbeszdablakban llthatak be a szksgesvltoztatsok.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    18/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    18.

    lltsuk be a kvetkezrtkeket:- Bettpus: Book Antiqua- Betstlus: Flkvr dlt- Mret: 24- Szn: Vrs

    Az OK gombbal hagyjuk jv abelltsokat, aminek eredmnyeknt akvetkezkpet kellene ltnunk:Termszetesen a feliratunkelhelyezkedsn vltoztathatunk aDrog&Drop mdszer segtsgvel is,de a Delphi kpes az objektumokformon belli elhelyezkedsre egybiztosabb lehetsget is biztostani.Jelljk ki a formon lvHell vilg! cmknket, s krjk ki a helyi (gyors) ment,ahol a megjelen ablakban vlasszuk ki az Align lehetsget. A megjelen

    prbeszdablak magrt beszl, mindkt oszlop elemi kzl jelljk be az utols(Center In Window) lehetsget. Futtassuk az alkalmazst, gyzdjnk meg rlahogy minden rendben van, ha szeretnnk vltoztassunk a betk formai jellemzin,majd ha befejeztk tevkenysgnket, krjnk mentst, futtassunk egyet utoljra(hisz ekkor rdik fell az EXE llomnyunk), majd zrjuk be a Delphit. Futtassukezek utn az intzbl is az EXE alkalmazst nllan, majd zrjuk be az Intzt is.

    Ha szeretnnk az elkszlt munknkat bemutatni, akkor elegend egy floppyra azEXE llomnyt elmentennk, vagy levlmellkletknt elkldeni, s a clgpenfuttatni. Amennyiben ksbb mg folytatni szeretnnk mshol is a fejlesztst, akkorszksgnk van a PAS llomny(ok)ra, valamint a DFM llomny(ok)ra is. A tbbesszm itt arra utal, hogy egy project nem csupn egyetlen Unit-bl, s Form-bl llhat.A project llomnyt (DPR) nem felttlenl szksges elmentennk, mert jprojecthez is csatolhatjuk a meglvPAS, s DFM llomnyokat, ahogy azt majd aksbbiek sorn (a tbbablakos alkalmazsok fejlesztsnl) ltni is fogjuk.Szintn az llomnyokkal kapcsolatban nem rt, ha tudjuk, hogy az elmentettllomnyainkat az intzben tnevezve, illetve trlve a Delphi hibazeneteket foggenerlni, mivel a project llomnyban trolt hivatkozsainkat gy nem vltoztathatjameg futsidben. sszessgben trekedjnk arra, hogy mdostsainkat mindig aDelphi menibl kezdemnyezzk, lehetsget adva gy a fejleszti krnyezetnekarra, hogy munknkat felhasznlbart mdon, felesleges kdok rsa nlkl

    vgezhessk.Objektum elnevezsi szablyok:Br az ltalunk ksztett munkk nem tartalmaznak tlsgosan sok elemet j, ha mra kezdetekkor hozzszokunk nhny alapvet szablyhoz, melyeknek aksbbiekben fogjuk nagy hasznt venni. Vegyk alapul az elkszltalkalmazsunkat.A mentsnl clszera:

    - Unitot: U+munkanv nven elmenteni, vagyis ha a Hello nevezet Unit-otmentjk, akkor az llomnynv legyen Uhello.pas, ahol az U a Unit-ra utal.

    - Project: P+munkanv, ahol a P utal a Project-re.

    - Form neve: frmHello, ahol az frm a Form kifejezs rvidtse,- Label neve: lblHello, ahol az lbl utalna a cmkre, s gy tovbb

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    19/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    19.

    Ellenrzkrdsek

    I.

    KREM VLASSZA KI A HELYES MEGOLDST!1. Mi a Delphi nyelvezete?

    a., Object Pascalb., Visual Basicc., C++

    2. Mi az IDE a Delphi krnyezetben?a., Hardvereszkzk illesztsnek felleteb., Integrlt fejleszti krnyezetc., A Delphi interpreteres fellete

    3. Mi a BDE?

    a., Komponensknyvtrb., Fordtmotor a Delphihezc., Adatbzis adminisztrcis fellet

    4. Mi a fejrsz?a., Az rlap felsrsze, ahol az alkalmazs neve is megtallhatb., A ment, eszkztrat, s komponenseket tartalmaz felletc., Az objektum felgyelfelsrsze.

    5. Hny csoportra oszlik a komponenspaletta?a., 9b., 12c., 15

    6. Melyik billentylenyomsra jelenik meg a kdszerkesztablaka?a., F8b., F10c., F12

    7. Mi az SDI?a., Tbb ablakos alkalmazs fejlesztsnek lehetsge.b., Egy ablakos alkalmazs fejlesztsnek lehetsge.c., Shut Down Interface.

    8. Melyik menbl rhetel a Use Unit menpont?a., File.b., Project.

    c., Compile.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    20/176

    Barhcs OktatKzpont Delphi modul - 1. fejezet

    20.

    II.KREM DNTSE EL, HOGY IGAZ, VAGY HAMIS-E AZ LLTS!

    1. A Delphi project llomnya a DFM kiterjesztsllomny.

    igazhamis

    2. Az alaprtelmezett alkalmazsnv a Delphiben FORM1.igazhamis

    3. A Delphi fejlesztst megelzte a Microsoft Visual Basic.igazhamis

    4. A Delphi teleptsnek rsze az Interbase teleptse is.igazhamis

    5. A Delphi fejlesztkrnyezet ngy frszbl ll.igazhamis

    6. A Delphi meni helyzetrzkenyek.igazhamis

    III.KREM VLASZOLJON A FELTETT KRDSEKRE!

    1. Hol tallhat meg a Lock Controll menpont?2. Hny csoportot tartalmaz a komponenspaletta?3. Soroljon fel 5 elemet a Project menbl!4. Sorolja fel a Delphi llomnyait, azok kiterjesztst!5. Sorolja fel a fejleszti krnyezet 4 csoportjt!6. Ismertesse a ments folyamatt Delphiben!7. Mi az Object Inspector?8. Sorolja fel az eszkztr legalbb 5 elemt!

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    21/176

    Barhcs OktatKzpont Delphi modul - 2. fejezet

    21.

    Objektumok kezelse

    Project megnyits, ltrehozs

    Megnyits:Az elz alkalommal egy pldafeladatot ksztettnk el, melyet a HELLOknyvtrunkba mentettnk. Szeretnnk folytatni a munkt, gy vissza szeretnnkkapni a korbban elmentett fejleszti krnyezetet. Ha a teljes munkt szeretnnkvisszahozni, akkor tbb lehetsg kzl vlaszthatunk.

    1. Keressk meg az intzben a knyvtrunkat, majd az ott lv Phello.dprllomnyra kattintsunk dupln.

    2. Indtsuk el a Delphit, majd a file menben keressk meg a Reopenmenpontot. Ha nem dolgoztak msok a Delphivel, akkor az elsllomny az

    lesz. Vigyzzunk arra, hogy a project llomnyt indtsuk el, ugyanis a Unitnmagban nem futtathat, csupn a forrs mdostst teszi lehetv.3. Ha msok is dolgoztak a gpen, akkor elkpzelhet, hogy nem talljuk a

    Reopen menben korbbi llomnyunkat. Ekkor vlasszuk a File men OpenProject lehetsgt, s tallzzunk a megfelelknyvtrba, majd vlasszuk ki aprojectet.

    Ellenrzskppen clszerfuttatni is rgtn az alkalmazst, mert jobb, ha mr mostkiderl, hogy nem mkdik valami, mert letrltnk nhny fontos llomnyt

    Project ltrehozsa:Termszetesen mg ekkor sincs elveszve minden. Ha a Unit, s a DFM llomnyok

    megvannak, azokbl brmikor tudunk jra projectet ltrehozni, aminek menete akvetkez:

    - Trljnk le minden llomnyt a HELLO knyvtrbl, az Uhello.pas, s azUhello.dfm llomnyok kivtelvel.

    - Indtsuk el a Delphit, majd menjnk a Project menpont Add To Projectalmenjre. Tallzzuk ki a megjelenprbeszdablakban a Hello knyvtrat,s adjuk hozz a projecthez az Uhello.pas llomnyt. A kpernyn azonnalmeg fog jelenni a Form is, ezrt neknk nem kell semmit sem tennnk.

    - Van mg egy aprsg: a Delphi indulsakor ltrejtt egy Unit1 nev Unit,amire neknk most semmi szksgnk. Menjnk fel a Project menpontRemove From Project almenjre, s a megjelen prbeszdablakbltvoltsuk el a Unit1nevUnit-ot. Ezzel a hozz tartoz form is megsemmisl.

    - Egyetlen dolgunk maradt: krjnk mentst, a Save All funkcival. Ekkor aUnit-ot mr nem kell mentennk, hiszen azt korbban megtettk, csupn az jproject llomnyunknak kell nevet, s elrsi utat belltanunk. Legyen aneve: Phello.dpr, s kerljn a HELLO knyvtrba.

    Ezt a mdszert btran alkalmazhatjuk arra is, hogy az iskolai munkt otthonfolytassuk, hisz a fenti kt llomny mrete jelentsen kisebb, mint a knyvtrunkbantallhat egyb llomnyok. Termszetesen a tbb formbl ll alkalmazsainkfejlesztse sorn valamennyi Unit, s DFM llomnyt haza kell majd vinnnk, de aproject ekkor is csak egyetlen llomny.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    22/176

    Barhcs OktatKzpont Delphi modul - 2. fejezet

    22.

    A formokrl ltalban:A Delphi alapeleme a form vagy rlap. Az rlap komponens neve TForm. A Delphiindtsakor kapott res ablak egy TForm komponens, amelyen pontozott rcshelyezkedik el. A rcs segti a szksges komponenseket elhelyezni az rlapon. Az

    alkalmazs ksztsnek els szakasza nem ms, mint a TForm objektummegszerkesztse (a komponensek elhelyezse), a tulajdonsgok sesemnykezelsek megadsa.

    Objektumok tulajdonsgai:Ha elindtottuk a Hello projectet, akkor alaprtelmezetten a Formunk (frmHello)tulajdonsgait ltjuk az objektum-kezelben. Mint korbban sz volt rla, azobjektumoknak eltr tulajdonsgaik lehetnek, gy egy adott objektum (mondjukrlap) tulajdonsglapjt sszehasonltva egy msik objektum (mondjuk cmke)tulajdonsgaival ms s ms tulajdonsgokat fogunk ltni. Ebben a fejezetben

    igyeksznk ttekinteni a legjellemz

    bb tulajdonsgokat a teljessg ignye nlkl aform (mint az egyik legtbb tulajdonsggal rendelkez) objektumot alapul vve.Egyb esetlegesen ismeretlennek tn tulajdonsg esetn elg, ha kijelljk atulajdonsgot, majd megnyomjuk az F1billentyt.

    ActiveControl

    Azt hatrozhatjuk meg, hogy melyik komponensen legyen a fkusz, azaz pl. gombkomponensek esetn melyik nyomgomb legyen az alaprtelmezett (krlttesttebb keret). A tulajdonsg neve melletti, egyelre res rszre kattintva, alegrdl listbl - amely a formon tallhat komponenseket tartalmazza -kivlaszthatjuk a kvnt elemet.

    AutoScroll

    A tulajdonsgnak kt llsa van: True s False. A True belltsa azt jelenti, hogy azablak - amennyiben futsi idben olyan kicsire mdostdik, hogy tartalma nem fr elbenne - automatikusan kiegszl grdtsvval.

    BorderIcons

    A tulajdonsgnevek egy rsze eltt + jel lthat (hasonl a Windows Intzhz). Ezazt jelenti, hogy ha a jelre rkattintunk, akkor tovbbi altulajdonsgok jelennek meg,amelyeket egyenknt lehet belltani (ha - jel van eltte, akkor viszont sszezrhat).A BorderIcons tulajdonsggal egybknt a Windowsos rendszermen s

    ablakmretezgombok megjelensrl rendelkezhetnk. biSystemMenu: a rendszermen (vezrlmen) engedlyezse vagy tiltsa biMinimize: az ablakminimalizl gomb engedlyezse. biMaximize: az ablakmaximalizl gomb engedlyezse. biHelp: a Help gomb engedlyezse.

    BorderStyle

    Az ablakszegly stlust s mretezhetsgt hatrozza meg. A legrdllistbl akvetkezk kzl vlaszthatunk:

    bsDialog: szabvnyos prbeszd-ablak keret, nem mretezhet. bsSingle: nem mretezhetszimpla vonalas keret.

    bsNone: nem lthat, nem mretezhetkeret, ablakmaximalizl, minimalizlikonja, vagy rendszermenje lehet.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    23/176

    Barhcs OktatKzpont Delphi modul - 2. fejezet

    23.

    bsSizeable: norml mretezhetkeret. bsSizeToolWin: olyan mint a bsSizeable, de kisebb cmsora van. bsToolWindow: olyan mint a bsSingle, de kisebb cmsora van.

    Caption

    Magyarul: kpszveg, felirat. Itt az ablak cmsorban szerepl szvegalaprtelmezetten az ablak neve lesz. A mezbe kzvetlenl gpelhetjk be a kvntfeliratot.

    ClientHeight, ClientWidth

    A form hasznos, kereten belli mrett lehet megadni pixelben.

    Color

    A form httrsznt adhatjuk meg. Vagy a legrdllistbl, vagy a jobb oldali cellraktszer kattintunk, s a megjelenprbeszd-ablakbl vlaszthatunk.

    Cursor

    Rengeteg kurzorforma kzl vlogathatunk, amely a form fltti helyzetre rtend. Asgban meg lehet tekinteni.

    Enabled

    A form csak True llsban reagl klsesemnyekre, False llapotban nem, vagyisitt adhat meg hogy engedlyezzk a hozzfrst vagy sem.

    Font

    A betk megjelentst hatrozhatjuk meg egy tbbszint belltsi listn, amit azelzalkalommal mr rszletesen ttekintettnk.

    FormStyle

    Ngy belltsi lehetsg kzl vlaszthatunk. Az- - fsNormal az alaprtelmezett, az- - fsStayOnTop esetn az ablak mindig a tbbi fltt fog elhelyezkedni, az- - MDI-s tulajdonsgokat pedig MDI formok esetn kell vlasztani.

    Height

    A form magassgt llthatjuk be pixel egysgben.

    HelpContext

    Sg alkalmazsa esetn hasznlatos, a sg krnyezetazonostt tartalmazza.Hint

    Ez is a sgval kapcsolatos tulajdonsg (csak a ShowHint tulajdonsg True-ralltsnl fog mkdni).

    HorzScrollBar

    A fggleges grdtsv belltst adhatjuk itt meg (a lthatsgot a Visibletulajdonsg True-ra lltsval biztosthatjuk). A vzszintes grdtsv tulajdonsgaita VertScrollBar-al hatrozhatjuk meg.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    24/176

    Barhcs OktatKzpont Delphi modul - 2. fejezet

    24.

    Icon

    A kvnt ikont a hrom pontra kattintva kereshetjk meg. Az ikon a rendszermenjeleknt fog szerepelni, s ezt ltjuk a Tlcn sszezrt alkalmazsikonon is.

    KeyPreview

    A billentyletseket a False belltskor a komponens, True vlasztsakor pedig aform dolgozza fel.

    Left

    A form helyzett llthatjuk be a kpernybal oldaltl (pixelekben mrve). A felsrsztl val tvolsgot a Top tulajdonsg rja le.

    Menu

    Mentervezsnl hasznljuk. Kln lesz mg rla sz.

    Name

    A formnak (ltalban az objektumoknak) adhatunk nevet, hogy olvashatprogramszvegnk legyen. Legfeljebb egyszer programoknl hagyjuk meg azeredetit. A nv- (azonost-) ads szablyai mr a Pascal-bl is ismertek, de azelzfejezet vgn is volt sz rla.

    ObjectMenuItem

    OLE objektum mencmknt val kezelsekor hasznljuk.

    PixelsPerInch

    Azt llthatjuk be, hogy a form egy inch-nyi rszn hny kpernypont (pixel) legyen(a Scaled tulajdonsg True-ra lltsnl). A kpernyfelbontstl fggetlen

    programrst teszi lehetv.

    PopupMenu

    A helyi vagy gyorsmen nevt adhatjuk meg.

    Position

    A form elhelyezst ler tulajdonsg. t belltsi lehetsg van: poDefault: teljes mrtkben a Delphi dnt a form helyrl s mretrl. poDefaultPosOnly: a Delphi dnt a form helyrl, mrett viszont nem

    vltoztatja. poDefaultSizeOnly: a form ott lesz, ahol a tervezskor hagytuk, de a

    mretet a Delphi lltja be. poDesigned: ott s olyan lesz a form, amilyen a tervezskor volt. poScreenCenter: a kpernykzepre helyezi a formot.

    PrintScale

    A form kinyomtatsi mdjt ler tulajdonsg. poNone: nem lesz lptkvltoztats, gy a nyomat klnbzni fog a

    kpernytl. poPrintToFit: a nyomtatsi mretek gy mdosulnak, hogy rfrjen a

    paprra.

    poProportional: a kpernyn s a papron lvform mretei megegyeznek.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    25/176

    Barhcs OktatKzpont Delphi modul - 2. fejezet

    25.

    Scaled

    A PixelsPerInch tulajdonsgnl volt rla sz.

    ShowHint

    A Hint tulajdonsgnl volt rla sz.

    Tag

    Egsz szmot adhatunk meg, amivel informcit trolhatunk az adott objektumrl.

    Top

    A form helyzett llthatjuk be a kpernytetejtl (pixelekben mrve), mint a korbbiLeft tulajdonsg esetn.

    VertScrollBar

    Lsd a HorzScrollBar-nl lertakat.

    Visible

    A form lthat vagy sem (futsi idben).Width

    A form szlessgi mrett lehet belltani pixelekben.

    WindowMenu

    MDI alkalmazsoknl ablakment lehet a formhoz rendelni.

    WindowState

    A form alaprtelemezett mretarnyt ler tulajdonsg.wsMaximized: Maximalizlt (teljes kperny) mretform.

    wsMinimized: Minimalizlt mret

    (tlcn megnyl) form.wsNormal: Sem nem maximalizlt, sem nem minimalizlt mretform.

    Esemnyvezrelt eljrsok:Ahogy az objektumoknak eltrtulajdonsgaik vannak, ugyangy eltrek lesznek ahozzjuk kapcsold esemnyvezrelt eljrsok is. Nzzk ismt a form objektumot,milyen esemnyek tartoznak hozz. (Itt is rvnyes a korbban emltett kijellsseltrtnsg aktivls az F1billentyvel)A Delphi programok esemnyvezreltek, ami azt jelenti, hogy a program valamilyenesemny bekvetkezsre (pl. egy nyomgomb megnyomsra, billentyletsre

    stb. reaglva) fut tovbb. Az esemnyek kezelst segti az objektum-felgyelmsodik, Events nev lapja. Az esemnykezelst lnyegben neknk kellmegrnunk, amihez a Delphi forrskd sablont szolgltat. A sablont az esemnynvjobb oldali celljra val ktszeri kattintssal hvhatjuk el. Az alaprtelmezettesemnyeket a komponensre trtndupla kattints teszi elrhetv.

    OnActivate

    Akkor hajtdnak vgre az itt tallhat utastsok, amikor az inputfkusz ttevdik aformra.

    OnClick

    A formra val egrrel trtnkattints vltja ki.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    26/176

    Barhcs OktatKzpont Delphi modul - 2. fejezet

    26.

    OnClose, OnCloseQuery

    Az OnCloseQuery esemnyt az ablak bezrsa, pontosabban bezrsi ksrletevltja ki, s az OnCloseQuery esemny vgrehajtsa utn zrdik majd be a form. Aformot bezrhatjuk az Alt+F4 billentyprossal, a bezr ikonnal stb. Hasznlhatjukaz esemnyt a form bezrsnak letiltsra, memria-felszabadtsra. Az OnClose

    esemny hatrozza meg az ablakbezrs mdjait (az esemny Action paramterei:caNone, caHide, caFree, caMinimize).

    OnCreate

    A form s komponensei kezdeti tulajdonsgainak belltsra hasznljuk. Azesemny a form elsvgrehajtsakor kvetkezik be.

    OnDblClick

    A Formon trtnktszeres egrkattints vltja ki.

    OnDeactivate

    Ms alkalmazsra val vltskor kvetkezik be (pl. a programot a Tlcra tesszkalkalmazsikon formjban, s egy msik alkalmazssal, pl. szvegszerkesztvelkezdnk dolgozni).

    OnDestroy

    A memria-felszabadts eszkze ablakbezrskor.

    OnDragDrop, OnDragOver

    Az egr mozgst figyelesemnyek.

    OnHide

    Az ablak elrejtsekor kvetkezik be.

    OnKeyDown, OnKeyPress, OnKeyUp

    A billentyletseket figyelesemnyek.

    OnMouseDown, OnMouseMove, OnMouseUp

    Az egr mozgst figyelesemnyek.

    OnPaint

    Ha az ablak egy rszt ideiglenesen eltakarta valami (pl. egy msik ablak), akkor azjrarajzolsrl itt kell gondoskodni.

    OnResize

    Az ablak tmretezsekor az elemek thelyezst s tmretezst itt kellmegoldani.

    OnShow

    A form megjelense eltt bekvetkezesemny.

    rlap objektum tulajdonsgainak mdostsa:A tulajdonsgok belltsnak gyakorlsa vgett vgezzk el a kvetkezfeladatokata Hello munknkon:

    - Kattintsunk a Form szrke res terletre, s gyzdjnk meg rla, hogy azobjektum-felgyelben a felsrszben az frmHello felirat ltszik.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    27/176

    Barhcs OktatKzpont Delphi modul - 2. fejezet

    27.

    - A Border Icons tulajdonsgoknl el tudjuk tntetni a kismret, s a teljesmretgombokat, ha a biMinimize, s biMaximize rtkeket False-ra lltjuk.

    - Ahhoz, hogy megakadlyozzuk az rlapunk tmretezhetsgt, lltsuk t aBorder Style tulajdonsgot bsDialog-ra

    - Vlasszuk ki a Color tulajdonsgot, s kattintsunk dupln az ott lthat szn

    feliratn. A megjelen prbeszdablak ismersnek tnhet, vlasszunk egysznt, vagy definiljunk sajt sznt az egyni sznek definilsa gombsegtsgvel. Legyen a vlasztott szn most halvnykk.

    - lltsuk a Position tulajdonsgot poScreenCenter-re, vagyis ablakunk akpernykzepn nyljon majd meg.

    Ments, s futtats utn amennyiben mindent megfelelen lltottunk be, akvetkezkpet kellene kapnunk:

    A belltsok eredmnyeknt az ablakot nem lehet a keret mentn mretezni, nemnyithat teljes mretre, s nem tudja a felhasznl a tlcra tenni. Ezen kvl akpernynk kzepn fog megjelenni.

    Kdszerkeszts a Delphiben:A Windows egsz filozfija az ablakokra van alapozva, ezrt a Windowsos felletretervezett Delphi alkalmazsokat is ablakokban (formokban) kell elkpzelni. Aprogram (project) klnbz rszei, mveletei egy-egy, arra a feladatra tervezettablakban jtszdnak le. Magyarul: a program felhasznli fellett az ablakokszolgltatjk.A Delphiben ktfle programozsi stlussal dolgozhatunk. Az egyik a

    komponensekkel val programozs, aminek az alapjain mr lassan tljutunk. Akomponensek elre elksztett ptelemek, amelyekbl gy lltjuk ssze aprogramot, mint egy Lego-jtkot az ptkockibl. A msik programozsi md a"hagyomnyos": a problmamegolds Object Pascal programnyelven valmegfogalmazsa. A Delphi a forrskd egy rszt sajt maga kszti el, atulajdonkppeni algoritmusokat neknk kell megrnunk.De mik is a komponensek? Adott feladatra tervezett elemek, amelyeket ObjectPascal-ban rtak meg, s amelyek forrskdjhoz a Delphi bizonyos verziiban hozzis frhetnk. A komponenseket a nevk el rt T betrl ismerhetjk fel. Akomponenseket az rlapon (formon) helyezhetjk el. Maga a form komponens neveTForm, a rrt szveg (cmke) TLabel, a rhelyezett nyomgomb pedig TButton stb.Ha esemnyeket szeretnnk rendelni az objektumainkhoz, meg kell keresnnk azobjektum-kezelben az objektum Events fln lv valamely esemnyt, s vgre

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    28/176

    Barhcs OktatKzpont Delphi modul - 2. fejezet

    28.

    valban programozhatunk, a korbban mr elsajttott Pascal utastsainkraalapozva.

    Parancsgomb hasznlata:Nzzk a mr egyre ltvnyosabb Hello projectnket. Szeretnnk egy picit aktvabb

    tenni a dolgot, mondjuk, a kilpshez feltennnk egy gombot a felhasznlknak.- Terveznzetben keressk meg a Standard komponenspalettn, kzptjon

    az OK feliratot viselBUTTON objektumot, s kattintsunk r (jelljk ki).- Vigyk az egeret a Hell Vilg! feliratunk al, s kattintsunk egyet a Form

    terletn.- A megjelent gombunk tulajdonsgait lltsuk be:

    o Caption: &Kilps (az & jel a gyorsbillentyvel trtnelrst szolglja,gy a feliratunkban az elskarakter alhzott lesz futsidben)

    o Name: btnKilep (a korbban mr megbeszlt nvkonvencik alapjn)o A gombon jobb egrgombbal kattintva vlasszuk ki az Align

    tulajdonsgot, s most elegend a Horizontal oldali tulajdonsgot

    Center In Window-ra lltani.Ha a ments utn futtatunk, mr ltni fogjuk a megjelensben teljes rtkgombunkat, melynek egyetlen szpsghibja, hogy mg nem tesz semmit, harkattintunk. Ezt az apr problmt gyorsan kikszblhetjk:

    - Menjnk terveznzetbe, a formon vlasszuk ki egy kattintssal a gombot.- Gyzdjnk meg rla, hogy az objektum-kezelben a btnKilep tulajdonsgait

    ltjuk, majd kattintsunk az Events flre.- A gombok esetben az alaprtelmezett (els) esemny az OnClick, vagyis a

    kattintsra esemny. Itt, ha megnzzk, a lenyl lista nem knl vlasztsilehetsget, de mi nem is szeretnnk ilyesmit. Kattintsunk duplt az aktvmezbe (vagyis az OnClick esemny mellett lv listba) s azonnalmegjelenik a kdszerkeszt.

    - A villog kurzor helyre rjuk be a pascal zrs utastst: close;

    - Krjnk mentst, s futtassuk az alkalmazst.

    Amennyiben mindent jl hajtottunk vgre, a gombunk mkdni fog, vagyis harkattintunk, be fogja zrni az ablakot.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    29/176

    Barhcs OktatKzpont Delphi modul - 2. fejezet

    29.

    A Unit tartalmaTermszetesen nem mehetnk el sz nlkl az elbb ltott ablak (a kdszerkeszt)mellett, rtkeljk ki a tartalmt. Terveznzetben ha nem a Unit ablak lenne azaktv, akkor hvjuk azt el.

    A grgetsv, s az ablak mretezsnek segtsgvel igyekezznk lthatv tennia teljes kdot:

    Nos, ahhoz kpest, hogy mindebbl mi csupn a close utastst rtuk be, itt elgsok minden tallhat. Akik jrtasak a Pascal nyelvezetben, azok szmra nem kellmlyen magyarzni a fent lthat kdot. rdekessgknt annyit emelnnk ki, hogyaz ltalunk nvvel el nem ltott cmke az eredeti delphi konvenci szerint azosztlynak a nevt, s a ltrehozs sorn kapott sorszmot kapta: Label1.Amennyiben tnevezzk az objektum-kezelvel az objektumot, akkor termszetesena httrben a kd automatikusan megvltozik.Ebbl is rzkelhet taln a Borland fejlesztinek clja: egy jtkos, egyszeren

    hasznlhat fejleszti krnyezet elksztse, mely a lehet legnagyobb mrtkben

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    30/176

    Barhcs OktatKzpont Delphi modul - 2. fejezet

    30.

    felhasznlbart, s lehetsget ad a komolyabb clokkal programozni kvnkszmra is.Jtszunk mg el egy kicsit a Hello kddal, hajtsuk vgre a kvetkezfeladatokat:

    - Hvjuk ela httrbl a formunkat (frmHello)- Kattintsunk a form vilgoskk felletre

    - Az objektumkezelben a form Events fln kattintsunk dupln az OnClickesemny beviteli mezjbe.- A megjelenbegin end pros kz rjuk be:

    Label1.Caption:='Hello World!';

    Ez az apr kdsorozat azt eredmnyezi, hogy futs kzben az rlapra kattintva(termszetesen nem a bezrs gombra gondoltunk), megvltozik a feliratunkszvege.Ebben az egy utastssorban kt dologra is rdemes felfigyelnnk. Az egyik, hogyobjektumaink tulajdonsgait futsidben a kdon keresztl tudjuk befolysolni. (Eztmg annyiban segti a Delphi, hogy a kd helyes rsakor az objektumokhoz

    megjelenti a hozzjuk tartoz megvltoztathat tulajdonsgot is. Amennyibenfigyeltk a kpernyt, mikzben az elzkdot bertuk ezt mr tapasztalhattuk is.). Amsik a szveges informcik szimpla idzjelek kz ttele, vagyis a cmknkszveges (text) tpus adatot fogad, amit az rtkadskor szimpla idzjel nyit, sugyanaz zr.A Pascal utastsok lezrsa itt is rvnyes, vagyis az utastsokat pontosvesszvelzrjuk, de a Delphi nem knyes annyira az esetlegesen elhagyott jelekre.

    Befejezsknt hajtsuk vgre nllan azt a feladatot, hogy amennyiben a feliratunkrakattintunk futsidben, akkor az eredeti feliratunk trjen vissza, vagyis jra a HellVilg! feliratot lssuk.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    31/176

    Barhcs OktatKzpont Delphi modul - 2. fejezet

    31.

    Ellenrzkrdsek

    I.KREM VLASSZA KI A HELYES MEGOLDST!

    1. Melyik kt llomny szksges legalbb korbbi munknk folytatshoz?a., DPR, PASb., DFM, DPRc., PAS, DFM

    2. Melyik llomny tartalmazza az ltalunk rt kdot?a., DFMb., DPRc., PAS

    3. Melyik objektumtulajdonsg alkalmas a vezrlmen gombjainak belltsra?a., Border Style

    b., Object Menu Itemc., Border Icons4. Minek a belltsra alkalmas a Window State?

    a., Az ablak elhelyezkedst befolysolja a kpernyn.b., Az ablak mrett adhatjuk meg pixelben.c., Az ablak mretarnyt llthatjuk be.

    5. Mikor hajtdik vgre az OnActivate utastsok?a., Ha elindtjuk a formot.b., Ha betltdik a form.c., Ha a fkusz a formra kerl.

    6. Hnyfle programozsi stlussal dolgozhatunk a Delphiben?

    a., 2.b., 3.c., 5.

    7. Hov kerlnek a kdban a komponensek defincii?a., a USES rszbeb., a TYPE deklarcis rszbec., az IMPLEMENTATION utn

    8. Hogyan nevezi el az objektumokat alaprtelmezetten a Delphi?a., osztlynv+tpusb., osztlynv+nvekvsorszm osztlyonkntc., osztlynv+az objektum formon levsorszma

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    32/176

    Barhcs OktatKzpont Delphi modul - 2. fejezet

    32.

    II.KREM DNTSE EL, HOGY IGAZ, VAGY HAMIS-E AZ LLTS!

    1. A Delphi nem rzkeny arra, ha elhagyjuk a sor vgn lvlezr jelet.

    igazhamis

    2. Az objektumoknak azonos tulajdonsgaik vannak.igazhamis

    3. Minden objektumhoz tartozik OnActivate esemnyigazhamis

    4. Az objektumosztlyok betjelzse a T.igazhamis

    5. Az rlap tmretezhetsgt a Border Style tulajdonsggal szablyozhatjuk.igazhamis

    6. Az OnShow esemny az rlap megjelensekor kerl vgrehajtsra.igazhamis

    7. A HorzScrollBar a vzszintes grgetsv tulajdonsgainak belltsra szolgligazhamis

    8. A Height tulajdonsg a Form magassgnak belltsra szolgl.

    igazhamis9. Korbbi delphi munknkat a Reopen paranccsal biztosan eltudjuk hvni.

    igazhamis

    III.KREM VLASZOLJON A FELTETT KRDSEKRE!

    1. Mit tekintnk a Delphi objektumok kzl alapobjektumnak?2. Soroljon fel legalbb 5 bellthat objektum tulajdonsgot!

    3. Soroljon fel legalbb 5 objektumokhoz kapcsold esemnyt!4. Mit llthatunk be a BorderStyle tulajdonsggal?5. Mikor aktivizldik az OnKeyUp esemny?6. Vzolja fel a httrben lvUNIT tartalmt!

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    33/176

    Barhcs OktatKzpont Delphi modul - 3. fejezet

    33.

    A Delphi komponensei I.

    A komponenspaletta

    Az elzekben mr megismerkedtnk nhny komponenssel (Button, Label), eljttaz id, hogy ismereteinket tovbb mlytsk. A Delphi jtkos fejlesztsi fellettleginkbb az elre elksztett komponensek hasznlata adja. Ha egy gombra vanszksgnk, mr nem neknk kell megrnunk a gombot generl forrskdot, mertezt mr elvgeztk helyettnk. Neknk csak ki kell vlasztanunk azt, amelyikreppen szksgnk van. Termszetesen ez nem jelenti azt, hogy nincsenlehetsgnk nll, sajt fejleszts komponenseket definilni. De nzzk teht,mik azok az elemek, melyeket vlaszthatunk:

    Standard komponenspaletta:

    Az egyik leggyakrabban hasznlt csoport, itt tallhatak meg az alapvetkomponensek.Elemeit balrl jobbra soroljuk fel:

    - Nyl: a legelsaktv elem, az objektumok kivlasztst teszi lehetv.- Frames: frame-eket hozhatunk ltre (ablak az ablakban).- MainMenu: Menszerkezet ltrehozst teszi lehetv.

    - PopupMenu: Helyi, vagy gyorsmen ltrehozsnak lehetsge.- Label: Feliratok, cmkk elhelyezsre szolgl.- Edit: Beviteli mezt hozhatunk ltre.- Memo: Feljegyzst kszthetnk (hosszabb szvegek trolsra).- Button: Nyomgomb.- CheckBox: Jellngyzet (csoportba foglalhat).- RadioButton: Vlasztkr (csoportba foglalhat).- ListBox: Listapanel, elemeket sorolhatunk fel benne.- ComboBox: Lenyllista.- ScrollBar Grgetsv.- GroupBox: A csoportba foglals eszkze.- RadioGroup: Vlasztkrk csoportja.- Panel: Egyb objektumok egysgbe foglalst teszi lehetv.- ActionList: Eljrsok, fggvnyek, akcik trolsra szolgl.

    Valamennyi elem esetben rvnyes, hogy kivlasztsuk utn kattintanunk kell aformon, gy lesznek azok a form rszei. A fenti csoportbl a MainMenu, aPopupMenu, s az ActionList futsidben lthatatlan, teht a formunk brmelyterletre elhelyezhetek. Az ltaluk vgrehajtand tevkenysg ugyanis klssegtsggel trtnik majd meg, pldul a men esetben mi csupn a menelemeketkell, hogy felsoroljuk, s a hozzjuk tartoz utastsokat, a megjelents a Windows

    konvenciinak megfelel

    en trtnik.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    34/176

    Barhcs OktatKzpont Delphi modul - 3. fejezet

    34.

    Feladat: Msols (Masol)Ksztsnk egy egyszer alkalmazst, mely egy beviteli mezbe rt szveget egygomb megnyomsra egy msik beviteli mezben is megjelent.

    1. Indtsuk el az Intzt, s hozzuk ltre a Delphi alknyvtrunkon bell a Masol

    knyvtrat, ahov a munknkat fogjuk menteni.2. Indtsuk el a Delphi-t, majd az alaprtelmezett Form1 tulajdonsgaitvltoztassuk meg a kvetkezkppen:

    - Name: frmMasol.- Caption: Beviteli meztartalmnak msolsa.- ClientHeight: 300- ClientWidth: 400

    3. Krjnk mentst a Save All utastssal. A Unit neve legyen Umasol.pas, aproject neve pedig Pmasol.dpr. Mindkt llomny a korbban ltrehozottMasol knyvtrunkba kerljn.

    4. Keressk meg a Standard komponenspalettn az Edit elemet, kapcsoljuk be,

    majd helyezzk azt a formra, a bal felssarokba. Mivel ez az aktv elemnk,vgezzk el rajta a belltsokat az objektum-felgyelsegtsgvel:

    a. Name: edtForrasb. Text: Trljk ki a mez tartalmt. Ha be van ide rva

    valami, akkor az alaprtelmezetten megjelenikfutsidben, ami nem mindig szerencss.

    c. Top: 10 (Pixelben megadjuk az elhelyezkedst).d. Left: 10 (szintn az elhelyezkedst lltja be).

    5. Vlasszuk ki jra a komponenspalettn az Edit elemet, s helyezzk a mrmeglvelemnk mell. lltsuk be ennek is a tulajdonsgait:

    a. Name: edtCelb. Text: Trljk ezt is.c. Top: 10d. Left: 260 (Ezt kzeltleg adtuk meg, ismerve a Form

    szlessgt (300), s ismerve az Edit alaprtelmezettszlessgt (21))

    6. Az alapelemeink megvannak, vlasszuk ki a komponenspalettrl a msolsvgrehajtsrt felels Button gombot, s helyezzk a forrst tartalmazbeviteli mezal. lltsuk be a tulajdonsgait:

    a. Name: btnMasolb. Caption: Msols

    c. Left: 30d. Top: 457. rjuk meg a gombhoz tartoz kdot. Az elzalkalommal mr rtunk hasonl

    utastst, akkor rszletesen jutottunk el a kdszerkeszthz, lpsrl lpsre.Most ezt egyszerbben tesszk meg: kattintsunk dupln a bal egrgombbal aMsols gombra. Ltni fogjuk, hogy a gomb alaprtelmezett esemnyvelindul el a kdszerkeszt:

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    35/176

    Barhcs OktatKzpont Delphi modul - 3. fejezet

    35.

    Beviteli meztartalmnak msolsa:8. Mi azt szeretnnk, ha a gomb lenyomsakor a gp, a forrsban tallhat

    szveget tmsoln a cl beviteli mezbe. Ennek rdekben a villog kurzorhelyre rjuk be a kvetkezkdsorozatot: edtCel.text:=edtForras.text;

    9. Krjnk mentst a Save All-al, majd futtassuk s teszteljk azalkalmazsunkat.

    Br az eredeti clt megvalstottuk, vagyis a feladat megfogalmazsban szerepltevkenysg maradktalanul vgrehajtsra kerl, szemmel lthat, hogy programunkhagy nmi kvnnivalt maga utn.

    1. A tesztels sorn knyelmetlen a msols vgrehajtsa utn jrarkattintani a forrsra, s trni annak tartalmt.

    2. A cl mezhozzfrhet, gy a felhasznl t tudja rni annak tartalmt.

    3. Br nem okoz hibt, de rtelmetlen m

    velet, ha a forrs mez

    tartalmtresen msoltatjuk t a cl mezbe.Ezeknek a hinyossgoknak a kikszblse rdekben bvteni fogjuk a programota kvetkezkppen:

    A fkusz vezrlelemre irnytsa:10. Az els problmra megoldst jelenthet, ha kiegsztjk az elzleg bert

    kdot egy jabb sorral. Keressk meg terveznzetben a Msols gombot, skattintsunk r dupln. Az elzleg bert sor vgn ssnk egy Entert, s jsorba rjuk be: edtForras.SetFocus; Ezzel az utastssal a msolsbefejezse utn arra utastjuk a programot, hogy a fkusz kerljn vissza a

    forrs beviteli mezre. Termszetesen gy a forrsban lvszveg kijellsrekerl majd (sttkk lesz a httere), ami neknk tkletes, hiszen gy rgtnfellrhatjuk az j szveggel a tartalmt.

    11. A msodik problma kikszblsnek rdekben terveznzetben vlasszukki a formon az edtCel mezt, s keressk meg a tulajdonsglapon a ReadOnly(csak olvashat) tulajdonsgot, majd lltsuk True-ra. (Elvileg az Enabled(engedlyezve) tulajdonsggal is jtszhatnnk, de ebben az esetben a msoltszvegnk szrks sznnel jelenne majd meg a formon a cl mezben, aminem tl szp.)

    12. A harmadik problma megoldshoz mr sszetettebb kdra leszszksgnk. Egy elgazsban meg kell vizsglnunk a msols megkezdse

    eltt a meztartalmt, s ha res, akkor nem hajtjuk vgre a msolst. Ehhezjra vissza kell trnnk a gombunk mr mdostott kdjhoz, kattintsunk

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    36/176

    Barhcs OktatKzpont Delphi modul - 3. fejezet

    36.

    dupln a Msols gombra terveznzetben. A megjelen kdot rjuk t akvetkezkppen:

    Egyszerzenet kldse:Prbljuk ki az alkalmazsunkat, mentsnk, s futtassunk. Ltni fogjuk, hogyabban az esetben, ha res a forrsunk tartalma, akkor a msols gombra trtnkattints utn nem kerl vissza a fkusz a forrsra, hiszen nem hajtdik vgre a

    msols kdja. Ezt a legegyszerbben gy oldhatjuk meg, ha mr az elgazseltt tadjuk a fkuszt, gy mindkt esetben a forrsunk lesz aktv. Persze jlenne kzlni a felhasznlval, ha resen prblta tmsolni a forrst a clba, gyaz igaz gba is kerlhet egy kiegsztsor:Showmessage(A forrs tartalma res!)Az utasts meghvja a showmessage fggvnyt, mely a paramterekntmegadott szveget kirja a kpernyre egy prbeszdablak segtsgvel.Mdostsuk teht a kdunkat:

    Mentsnk, s futtassunk. Ltni fogjuk, hogy a showmessage fggvnyprbeszdablaka a Caption rszben a project nevt tartalmazza, amit nemtudunk megvltoztatni. Termszetesen lehetsgnk van sajt zenetablakokszerkesztsre is, ahogy azt majd a ksbbiekben ltni is fogjuk. Csinostsukmg egy kicsit tovbb a programot:13. Terveznzeten tegynk fel egy jabb gombot a msols gomb al, s lltsuk

    be a tulajdonsgait:a. Name: btnTorolb. Caption: Trlsc. Left: 30d. Top: 80

    Kattintsunk dupln a bal gombbal a most belltott trls gombon, s amegjelenkdszerkesztbe rjuk be a trls utastsait:

    Szeretnnk, ha a forrs mez

    tartalma trl

    dne,Szeretnnk, ha ez a cllal is megtrtnne,

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    37/176

    Barhcs OktatKzpont Delphi modul - 3. fejezet

    37.

    s vgl szeretnnk, ha a fkuszt a forrs kapn, hogy a felhasznljra kezdemnyezhesse a msolst:

    Kommentezs:Mint lthat, a kdban a kommenteket (magyarzatokat) is elhelyeztk, melyekre aDelphi hrom lehetsget is biztost:

    1. A dupla Slash (//) egy sor kommentezst teszi lehetv, s a komment akvetkezsor elejig tart.

    2. A (**) karaktersorozat kztti rsz tbbsoros kommentet tesz lehetv,termszetesen ekkor a lezr jelsorozat jelzi a komment vgt.3. A {} karaktersorozat, mely az elzvel egyenrtk.

    Clszer a kdunkban lehetsg szerint minl tbb megjegyzst elhelyezni, flegakkor, ha mg csak ismerkednk a Delphivel. A ksbbiek sorn az alapparancsokkommentezse elhagyhat, de egy sszetettebb utastssor eltt mindenkppenjelezzk annak kezdett, feladatt, s jelentsgt. Egy tlthat, rtelmezhetdokumentcinak tkletes alapja a megjegyzsekkel elltott kd. Folytassuk mosttovbb a munkt a Msols projecttel.

    14. Mivel mr kt gombunk is van a formon, adjunk lehetsget a felhasznlnakarra, hogy egy gomb segtsgvel is ki tudjon lpni a programunkbl. Ezt mr

    az elz alkalommal megtettk a Hell projectnl is, gy ismtlskppenhajtjuk vgre a feladatot. Vlasszunk ki egy jabb gombot, s helyezzk aTrls gomb al. lltsuk be a tulajdonsgait:

    a. Name: btnKilepb. Caption: Kilpsc. Left: 30d. Top: 115

    Kattintsunk a gombon, dupln a bal egrgombbal, s a kdba rjuk be akilps utastst: close;

    Gyorsbillentyk ellltsa:

    15. Ha szeretnnk biztostani a felhasznlnak a gyorsbillentyvel valvgrehajts lehetsgt, akkor elegend, ha a gombok Captiontulajdonsgban a kvnt karakter el betesszk az & jelet. Ennek eredmnye,hogy a gombok esemnyeit a billentyzet segtsgvel is ki tudjuk vltani.Vlasszuk ki a Kilps gombot, keressk meg a Caption tulajdonsgt, smdostsuk: &Kilps.Tegyk meg ezt a msik kt gombnl is: &Trls, s &Msols.Ennek ksznheten most a K, a T s az M billentyket tudjuk majd hasznlniprogramunkban. (gyeljnk arra, hogy a menben szerepl gyorsbillentykombincikkal ne tkzzenek a gyorsbillentyink!)

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    38/176

    Barhcs OktatKzpont Delphi modul - 3. fejezet

    38.

    Krjnk mentst, majd teszteljk jra programunkat, gyzdjnk meg rla, hogy agyorsbillentyink is mkdnek (Alt+M, Alt+T, Alt+K). Ha mindent rendben talltunk,egy jabb problma merl fel: egy alkalmazsbl val kilpsnl clszermeggyzdnnk rla, hogy a felhasznl valban ki szeretne lpni az alkalmazsbl,vagy esetleg vletlenl kattintott a kilps gombra. A problmt egy, a bezrskor

    megjelen prbeszdablakkal kszblhetjk ki, mely megerstst kr afelhasznltl, s csak abban az esetben engedi bezrni az alkalmazst, ha a vlaszigen. Korbban mr dolgoztunk egy zenetablakkal (showmessage), de ez most nemhasznlhat, hiszen a felhasznlnak nem csupn az OK gombra van szksge,hanem egy igen-nem vlasztsi lehetsgre. Nzzk teht a megoldst:

    16. A megerstst rhatnnk az ltalunk ltrehozott Kilps gombra is, de ebbenaz esetben csupn a gombra trtn kattintskor krne megerstst aprogram, az X mentn trtn bezrskor nem. (Persze elkpzelhet, hogypontosan ez a clunk, akkor oda rhatnnk az eljrsunkat). Mi most mindktesetben (st, mg az Alt+F4 billentykombincira is!) megerstst krnk.Ezt a form esemnyei kztt tudjuk megtenni, kattintsunk teht az rlap

    szrke (res) terletre, vagy az objektum-kezelben nyissuk le a felslenyllistt, s vlasszuk ki a formunkat (frmMasol). Lpjnk t az Events(esemnyek) flre, s vlasszuk ki az OnCloseQuery esemnyt (kattintsunkbele dupln). Az ide rt kd, az ablak brmilyen mdon trtnbezrsakorvgrehajtsra kerl. A BeginEnd kz rjuk be a kvetkezkdot:

    CanClose:=messagedlg('Valban ki szeretne lpni?',mtconfirmation,[mbYes, mbNo],0)=mrYes;

    Vizsgljuk meg a fenti kdot. A CanClose direktva jelzi a kdban a bezrhatsgot,melyet az zenetablakra rkezigen vlasz ad. Az zenetablakunk (messagedlg) 4paramterrel rendelkezik: az zenettel (egy ltalunk megadott szvegkonstans), az

    zenetablak tpusval (ksbb rszletesen beszlnk rla), a megjelentendgombok felsorolsval, valamint a sg krnyezetazonostjval. Sz szerintifordtsban a kdunk a kvetkez: Az alkalmazsablak akkor zrhat be, ha aValban ki szeretne lpni? krdsnkre a felhasznl az Igen gombot nyomja meg.Mentsnk jra, majd futtassuk az alkalmazsunkat. Prbljuk ki a kilpstmindhrom lehetsges mdon (X, Kilps gomb, Alt+F4)

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    39/176

    Barhcs OktatKzpont Delphi modul - 3. fejezet

    39.

    zenetablakok a Delphiben:

    Az elzpldafeladatunkban kt zenetablakot is hasznltunk a felhasznlval val

    kommunikci elsegtsnek rdekben, nzzk milyen lehetsgeket knl tehtsszessgben erre a feladatra a Delphi.

    ShowMessage():Egyszer zenetablak, paramterknt csak egy aposztrfok kztti szvegetadhatunk meg. Ezt alkalmazzuk akkor, ha csupn mi zennk a felhasznlnak,nem vlasztsi lehetsget knlunk neki.

    MessageDlg(zenet, ablak tpusa, [Gomb1, Gomb2],sg)A Message Dialog (zenetdialgusablak) mr 4 paramter fogadsra kpes.

    Els

    knt az zenet szvegt kell megadnunk szintn aposztrfok kztt.Vesszvel tagolva kvetkezik az ablak tpusnak meghatrozsa, ahol csak a 4szoksos windowsos szimblummal rendelkez, vagy szimblum nlkli ablakadhat meg:

    mtWarning: Srga hromszg felkiltjellel, mtError: Vrs krben fehr kereszt, mtConfirmation: Buborkablakban egy krdjel, mtInformation: Buborkablakban egy I bet, mtCustom: Grafika nlkli zenet.

    Vesszvel tagolva kvetkeznek a gombok szgletes zrjelek kztt: [mbYes,mbNo], ahol az mb (MessageButton), a nv pedig az angol megfelel. A

    szgletes zrjel arra szolgl, hogy bell felsorolhassuk (szintn vesszveltagolva) a megjelentend gombokat. Az utols paramter, a sgkrnyezetazonost megadsa lenne, ha ezt nem szeretnnk hasznlni, akkor ismeg kell adnunk egy egsz rtket: 0.Ebben az zenetablakban sajnos mg mindig nincsen lehetsgnk, az ablakfejlcben szerepl feliratot (Caption) megvltoztatni, br lthatan tkletesenalkalmas a felhasznlval val kommunikci lebonyoltsra.

    MessageBox(zenet, zenet fejlce, vlaszthat gombok)A MessageBox (zenetdoboz) 3 paramterrel rendelkezik: az zenettel, azzenet fejrsznek megadsnak lehetsgvel, s a gombok felsorolsval.

    Ennek segtsgvel mr lehetsgnk van sajt fejlccel rendelkez zenetekmegadsra. A MessageBox, s a MessageDlg azonban fggvnyknt mkdik,gy a ltrehozsukkor fggvnyknt tudjuk csak ket vizsglni (vagyiselgazsba gyazva nzhetjk meg rtkeiket.)

    Trjnk vissza a korbbi feladatunkhoz, s egsztsk ki a kdunkat a mostmegismert zenetablakkal, mely csak akkor engedi a msolst, ha a felhasznltnyleg msolni szeretne.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    40/176

    Barhcs OktatKzpont Delphi modul - 3. fejezet

    40.

    17. Terveznzetben kattintsunk duplt a Msols gombunkon, hogy elrehozzuka kdszerkesztt. A kdunkban mr korbban elhelyeztnk egy elgazst,mely a beviteli mez res llapott vizsglva nem hajtja vgre a msolst.Most mlytsk tovbb az gakat. Ha megerstst szeretnnk krni, azt

    nyilvn a msols megkezdse utn kell csak megtennnk, teht oda kerl akd. Kattintsunk az Else utasts utn, ssnk egy Entert, s rjuk be a kdot:

    If Application.MessageBox('Msolhatok?','Megersts!',mb_YesNo)=IDYes then

    A kd magyarzata: Ha az zenetablak kt vlaszthat gombja kzl (Igen, Nem) afelhasznl az Igen-t (pontosabban annak azonostjt) vlasztja, akkors itt folytatdik a kdunk a tnyleges msolsutastssal.

    Br nmikpp eltr a MessageBox, s a MessageDlg, mgis sok kzs vonsukvan. A kezdeti idkben rdemes kommentezni a prbeszdablakainkat, amghozzszokunk, hogy mely esetben melyik vltozatot kell hasznlnunk. Ha mentnk,s futtatunk, nzzk meg, hogy a MessageDlg-vel ellenttben a MessageBox

    gombjai magyarul beszlnek.Van mg egy aprsg: a MessageDlg esetn van alaprtelmezett (kijellt) gombunk(az els Yes), mg a MessageBox-nl nincsen. Pedig ha kiprbljuk, akkortapasztalni fogjuk, hogy mgis mkdik az alaprtelmezett gomb: Yes, csak nincsenoly mrtkben kiemelve, mint a msik ablak esetn (nem kapja meg kzvetlenllthatan a fkuszt).Itt is rdemes segtsgl hvnunk a sgt ha elakadnnk: jelljk ki a kdban a kvntszvegrszt (MessageBox), majd nyomjuk le az F1-et.

    Menkszts a Delphiben:Tulajdonkppen kszen is vagyunk, de hasznljunk fel mg egy elemet, ha mr a

    standard komponenspalettval foglalkoztunk. Ksztsnk el egy ment azalkalmazsunkhoz.

    18. Keressk meg a komponenspalettn a MainMenu elemet, kapcsoljuk be, majdhelyezzk el a formunkon. Mivel nem fog ltszani futsidben, gy mindegyhov tesszk. lltsuk be a nv tulajdonsgot: Name: mnuMasol.Kattintsunk dupln a formon lv most elhelyezett MainMenu elemre. Amegjelenprbeszdablakban mr csak a menelemeket kell felvennnk:Mivel az els menhely aktv, rhatjuk is az els mencmet: "&File"(emlkezznk: az & jel a gyorsbillentyfunkcirt felels). Vegyk szre, hogya szveget tulajdonkppen az Object Inspector Caption celljba rjuk be. AzEnter megnyomsa utn megnylik a File men al tartoz menttelek elseleme. Ide rjuk be a "&Msols"-t, a "&Trls"-t, majd a "&Kilps"-t. Ezzelvgeztnk is a men elksztsvel, mr mkdne, de mg nem rendeltnk

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    41/176

    Barhcs OktatKzpont Delphi modul - 3. fejezet

    41.

    hozz esemnyeket, teht egy ments, s prba utn ezzel folytatjuk. Afuttats sorn most egyelre ezt fogjuk ltni:

    Korbban megrt eljrsok hvsa:Ne essnk ktsgbe, ha nem ltszanak az alhzott gyorsbillentyk, a funkciaktivlsakor (Alt+F) lthatak lesznek az elemeink. Tegyk most teht ezeketmkdkpess. Akr azt is tehetnnk, hogy a korbban megrt eljrsainkat jramegrjuk a megfelel menpontokhoz (ekkor arrl tesznk tanbizonysgot, hogymg a windows alapjait sem ismerjk, lsd: szerkeszts, msols, beilleszts). Ha

    viszont ez utbbi mdszert vlasztjuk (kimsoljuk a kdot, s beillesztjk), akkorpedig arrl gyzzk meg majd a kdba betekint szemllt, hogy azobjektumorientlt programozssal kapcsolatban (finoman fogalmazva) felsznesek azismereteink. Ha szrevettk, valamennyi eddig rt kdunk procedure, vagyis eljrs,teht a Unitunkon bell brmikor, brhonnan meghvhat, vgrehajthat. Nzzkhogyan:

    19. A formunk terveznzetben kattintsunk dupln a MainMenu elemnkre. Amegjelen (korbban mr hasznlt) menszerkeszt prbeszdpanelenkattintsunk szintn dupln az els menelemnkre: a Msolsra. Ennekeredmnyekppen a kdszerkesztben azonnal megjelenik a formunkon lvmen objektumunk msols elemnek kattintsra trtnesemnye:

    Lthat, hogy mivel nem adtunk nevet a menelemnknek, gy a Delphi konvencikrvnyesek, vagyis a Msols mennek a Delphi adta a Msols1nevet (az ltalunkadott nv kezetes karakterek nlkli vltozata+azonost). Termszetesen ezt, ha

    szeretnnk, tnevezhetnnk az objektum-kezelben, de szmunkra most ez

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    42/176

    Barhcs OktatKzpont Delphi modul - 3. fejezet

    42.

    mellkes, gy nem foglalkozunk vele. A BeginEnd kz be kellene rnunk annak azeljrsnak a meghvshoz tartoz kdot, melyet a Msols gombnl megrtunk:

    20. A kdszerkeszt ablakban a grgetsv segtsgvel (felfel indulva)keressk meg a szksges kdot (Ltni fogjuk, hogy az ltalunk keresett kda: procedure TfrmMasol.btnMasolClick(Sender: TObject);). Innen bennnket az

    eljrs neve rdekel: TfrmMasol.btnMasolClick, melybl termszetesen azosztlyazonost (T) jelet majd el kell hagynunk. Jegyezzk ezt meg, majdgrgessnk vissza a menelemnk kdjhoz. Mr tudjuk, hogy mit kellmeghvnunk, lssuk, hogyan hvhatjuk meg. rjuk be a kvetkez utastst amenelemnk BeginEnd-je kz:

    FrmMasol.btnMasolClick(Sender);Eljrst, fggvnyt paramterek nlkl nem igazn tudunk meghvni, ezrtkerl a kd vgre zrjelek kz a fenti paramter. Ha mentnk, skiprbljuk a kdunkat, ltni fogjuk, hogy minden rendben, mkdkpes amennk is. Egsztsk ki a kdunkat a maradk kt menponthoz tartozutastssal, mentsnk, s futtassunk.

    Lthatjuk, a kilpsnl nem rdemes bonyoltani az letnket, elegend, ha arvidebb, clratr kdot rjuk be, hisz a hozztartoz megerstsek a formOnCloseQuery esemnynl vannak definilva. Mentsnk, s dljnk knyelmesenhtra, ma hasznos elemeket sikerlt megismernnk a Delphi komponenseibl,melyekkel mr ltvnyos alkalmazsokat kszthetnk. Az eredeti Msols

    projectnk egy kicsit sszetettebb lett a korbbi terveinkhez kpest (st, tlsgosanis sszetett!), de a tanulmnyaink elmlytshez nagymrtkben segtsgnkre volt.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    43/176

    Barhcs OktatKzpont Delphi modul - 3. fejezet

    43.

    Ellenrzkrdsek

    I.

    KREM VLASSZA KI A HELYES MEGOLDST!1. Mire hasznlhatjuk a Delphiben a Standard komponenspalettt?

    a., Kdok egyszerbb ttelreb., Vizulis elemek elhelyezsre a formonc., Komponensek kijellsre

    2. Melyik nem eleme a standard komponenspalettnak?a., PopupMenub., MainMenuc., StatusBar

    3. Melyik elem nem jelenik meg futsidben a formon?

    a., ScrollBarb., ActionListc., Panel

    4. Melyik utastssal adhat t a fkusz egy vezrlelemre?a., SetFocusb., AddFocusc., FocusAdd

    5. Melyik zenetablak alkalmas csak informci megjelentsre?a., MessageBoxb., ShowMessagec., MessageDlg

    6. Hny lehetsget knl a delphi megjegyzsek ksztsre?a., 3b., 5c., 7

    7. A kvetkeztpusok kzl melyiket hasznljuk a megersts zenetablak(buborkablakban egy krdjel) ikonjnak megjelentsre a MessageDlgfggvnyben?

    a., mtInformationb., mtCustomc., mtConfirmation

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    44/176

    Barhcs OktatKzpont Delphi modul - 3. fejezet

    44.

    II.KREM DNTSE EL, HOGY IGAZ, VAGY HAMIS-E AZ LLTS!

    1. A Delphiben 5 lehetsgnk van kommentek ksztsre.

    igazhamis

    2. A MessageDlg fejrsze (Caption) paramterezhet.igazhamis

    3. A SetFocus utastssal tadhat a fkusz egy vezrlelemre.igazhamis

    4. Az egyik szabvnyos kommentezsi lehetsg a Delphiben: \\igazhamis

    5. A quit utastssal kezdemnyezheta form bezrsnak mvelete.igazhamis

    6. A MessageBox fggvnyben megadhat az zenetablak fejrsze is.igazhamis

    7. A standard komponenspalettrl lenyl listaelemeket is vlaszthatunk.igazhamis

    8. A Delphiben lehetsgnk van egyni komponensek definilsra is

    igazhamis

    III.KREM VLASZOLJON A FELTETT KRDSEKRE!

    1. Sorolja fel a Delphi kommentezseinek lehetsgeit!2. Sorolja fel a Delphi zenetek megjelentsre szolgl elemeit!3. Elemezze rszletesen a Delphi MessageDlg fggvnyt!4. Vzolja fel a menkszts lehetsgt a Delphiben!5. Mi a CanClose direktva, s hol, mire hasznljuk?

    6. Mire alkalmas a ShowMessage?

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    45/176

    Barhcs OktatKzpont Delphi modul - 4. fejezet

    45.

    A Delphi komponensei II.

    Az elz fejezetben megismerkedtnk a standard komponenspaletta elemeivel,folytassuk most tovbb a kvetkezkomponenspalettval.

    Additional komponenspaletta:

    Itt a ritkbban hasznlt komponensek tallhatak meg, melyeket az ltalnosalkalmazsoknl hasznlni szoktak. Mint lthat, a bal szlen az els komponensismt a Nyl, mely a kijells biztostsnak lehetsgrt tallhat fent. A tbbi:

    - BitBtn: Szveggel, s brval ellthat nyomgomb.- SpeedButton: Grafikval ellthat nyomgomb.- MaskEdit: Maszkolhat bevitelimez.- StringGrid: Szvegtblzat.- DrawGrid: Kpek tblzatos megjelentse.- Image: Kpek megjelentse.- Shape: Grafikai alakzatok megjelentse.- Bevel: 3D vonalak, s ngyszgek.- ScrollBox: Grgethetfellet.- CheckListBox: Vlaszthat lista.- Splitter: Tagol, terletfeloszt.

    - StaticText: Statikus cmke.- ControlBar: Eltvolthat eszkztr ltrehozsra szolgl.- ApplicationEvents: Alkalmazsunk esemnyeinek figyelsre.- Chart: Egy tblzat adatainak diagram formtum megjelentsre szolgl.

    A fenti elemek kzl a BitBtn, s a SpeedButton emelkedik ki klnsen, ugyanisezek segtsgvel kszthetnk eszkztrat (a Standard Button ugyanis nemruhzhat fel kp tulajdonsggal). Klnleges jelentsge van mg a MaskEdit-nekis, melynek akkor vesszk hasznt, ha egy beviteli mez feltltsekor korltozniszeretnnk a bevihet adatokat. Ez megkerlhet lenne a kdban trtnellenrzssel (hibakezelssel), de a feladat gyakorisga miatt a fejlesztk

    elksztettk ezt a komponenst is. Az Image alapesetekben a formok dsztsrehasznlhat (kpet tudunk benne megjelenteni), de mint ksbb majd ltni fogjuk azalkalmazsainkba is ltvnyos elemknt elhelyezhet.

    Feladat: Matematikai alapmveletek (4Alap)A mai alkalommal elksztnk egy egyszer alkalmazst, mely matematikaialapmveletek vgrehajtst teszi lehetv. Az Intzben hozzuk ltre a Delphialmappn bell a 4Alap nevalknyvtrat (ezzel a nvvel utalunk a 4 matematikaialapmveletre). s kezdhetjk is a munkt:

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    46/176

    Barhcs OktatKzpont Delphi modul - 4. fejezet

    46.

    1. Indtsuk el a Delphit, majd a megjelenablakban a form tulajdonsgait lltsukbe a kvetkezk szerint:

    a. Name: frmAlapb. Caption: Matematikai alapmveletekc. ClientWidth: 250

    d. ClientHeight: 2302. Krjnk mentst a Save All-al, a Unit neve Ualap, a project neve Palap,melyek kerljenek az elzleg ltrehozott 4Alap knyvtrba.

    3. Hozzuk ltre az adatok feldolgozshoz szksges beviteli mezket akvetkezk szerint. Vlasszuk ki a Standard paletta Edit elemt, s helyezzka formon a bal fels sarokba. A tulajdonsgait mdostsuk a kvetkezkszerint:

    a. Name: edtAb. Text: trljk ki a tartalmtc. Left: 10d. Top: 10

    e. Width: 40Ebbl az elembl szksgnk lesz mg kettre (edtB, s edtC), melyekethelyezznk vzszintesen az elsbeviteli mezmell (edtB Left tulajdonsga:80, edtC Left tulajdonsga: 160), hogy a kvetkezkpet lssuk:

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    47/176

    Barhcs OktatKzpont Delphi modul - 4. fejezet

    47.

    4. Ksztsnk most el kt cmkt, egyik a mveleti jel megjelentsrt felels, amsik pedig az egyenlsgjelet rajzolja ki. Vlasszuk ki a Label komponenset,majd a formon az elskt beviteli mezkz kattintsunk egyet. A megjelentcmknk tulajdonsgait mdostsuk a kvetkezmdon:

    a. Name: lblMuv

    b. Caption: trljk a tartalmt (majd a mveletnek megfelelen alakul)c. Font: Size: 18, flkvr (a Font mgtti ikon-ra kattintsunk)d. Height: 21(ugyanakkora, mint az Edit alaprtke)e. Left: 60 (nagyjbl kzpen)f. Top: 10 (mint az Edit-nl)

    Jhet a kvetkezLabel komponens, amit a msodik, s harmadik Edit kzhelyeznk el. Tulajdonsgai:

    a. Name: lblEredb. Caption: = (vagyis egy egyenlsgjel)c. Font: mint az elzcmknld. Height: 21

    e. Left: 130 (elg nagyjbl, majd mdosthatjuk)f. Top: 10

    5. Ksztsk most el az alapmveletek vgrehajtsrt felels gombokat.Vlasszuk ki a Button komponenst, majd helyezzk el a formra a bevitelimezk al bal szlre. Tulajdonsgai:

    a. Name: btnOsszeadb. Caption: + (vagyis egy sszeadsjel)c. Height: 25d. Left: 10e. Top: 50f. Width: 25

    Helyezznk el mg 3 gombot: kivons (Name btnKivon, Caption: -), szorzs(Name: btnSzoroz, Caption: *), oszts (Name: btnOszt, Caption: /) az elzmell, hogy a kvetkezkpet lssuk:

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    48/176

    Barhcs OktatKzpont Delphi modul - 4. fejezet

    48.

    Adatok talaktsa, konvertlsa Delphiben:A szmtsi mveletek vgrehajtsa eltt nhny dolgot vgig kell gondolnunk. Hafelttelezzk, hogy a felhasznlk tudjk, mit kell tennik, akkor koncentrlhatunkelszr a lnyegi feladatokra, vagyis ha az sszeadsra kattintunk, szeretnnk afelhasznl ltal az els, s msodik mezbe bevitt rtkeket sszegezni, s

    megjelenteni a harmadik mezben, mikzben a kt els mez kzt elhelyezkedcmke felveszi az sszeads szimblumjelt. Els nekifutsra nem tnik tlnehznek a feladat, de rgtn addik egy apr problma: a beviteli mezk szvegtpus adatokkal dolgoznak, neknk viszont ssze kellene adnunk kt szmot. Hogyrtsk mirl van sz, az elejn kezdjk:

    6. Tervezs alatt kattintsunk dupln az sszeads elvgzsrt felelsgombunkra. A kdszerkesztt fogjuk megkapni, prbljuk elvgezni azsszeadst. Elstletnk lehet a kvetkezkd:

    Ezzel a kddal azt fogjuk elrni, hogy a kt beviteli mez tartalmt a Delphisszefzi, vagyis (pl) 5+5=10 helyett az eredmny: 5+5=55. A gondesetnkben az, hogy a beviteli mez alaprtelmezetten szveges adatokattrol, mi viszont most szmtst vgeznnk. Mi teht a teend? t kellalaktanunk a szvegeket szmm, majd gy elvgezni a mveletet.Termszetesen az talaktshoz vltozkra lesz szksgnk, gy a Beginutasts eltt (a Pascal szablyoknak megfelelen) definilnunk kell a kvntvltozkat. Ne felejtsk el, hogy mg a mvelethez talaktsra van szksg,

    addig a mvelet vgn vissza is kell tudnunk alaktani a szmot szvegg.Hrom vltozra lesz teht szksgnk: a,b,c:integer tpusokra. Definiljukket:

    Majd mdostsuk a kdot. Tudjuk, hogy elszr a mezk tartalmt szmm

    kell alaktanunk, ehhez a Delphi StrToInt (StringToInteger, SzvegblEgsz)fggvnyt hvjuk segtsgl, majd elvgezzk a matematikai mveletet, svisszaalaktjuk az eredmnyt szvegg, az IntToStr fggvny segtsgvel:

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    49/176

    Barhcs OktatKzpont Delphi modul - 4. fejezet

    49.

    Adjuk mg ehhez hozz a cmkt megrajzol: lblMuv.Caption:=+;utastst, sments utn teszteljk az eredmnyt.

    A kvetkezlps a kivons, melyben gyakorlatilag minden megegyezik a mveletijelek kivtelvel (talaktunk, elvgezzk a mveletet, s visszaalaktunk)

    Termszetesen mindezt a kivons gomb kattintsra trtnesemnyhez rtuk.

    Fordts kzbeni hibazenetek:Msoljuk ki a kdot, s illesszk be a szorzs, s az oszts helyre is, mdostsuk aszksges rszeket, majd ellenrizzk a programunkat, hogy minden rendbentrtnik-e? Amikor futtatni akarunk, a Delphi hibazenetet fog kldeni: akdszerkesztals rszn az elssorban a kvetkezt lthatjuk:

    A hiba az integer tpussal van, mgpedig az oszts sorn (a kurzor az oszts

    mveletn ll : c:=a/b; mi lehet a baj? Termszetesen nem az A, s B vltozkkalvan a gond (mert akkor ennek mr korbban jelentkeznie kellett volna), marad a Cvltoz, s valban. A Delphi a hibazenettel hvja fel figyelmnket arra, hogy ktegsz tpus vltoz (a, b) osztsa esetn egyltaln nem garantlhat hogy egsztpus lesz az eredmny! (st) Mi most a teend? Mdostsuk a c vltoz tpusthelyileg, vegyk ki az integer tpusok kzl, s definiljuk double tpusknt. Erre(br nem ezt vrnnk) megint hibazenetet kapunk, de most az eredmnykiratsakor. Ha figyelmesen megnzzk a hibazenetet, ltni fogjuk mi a gond: akirskor az IntToStr fggvnyt hasznltuk, de az elbb megvltoztattuk a c tpust,gy az mr nem Int. hanem double, amit a FloatToStr (Lebegpontosbl Szvegg)fggvny tud talaktani. Javtsuk teht ki a kdot, mentsnk, s remnykedjnk,hogy nem fog elszabadulni a pokol

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    50/176

    Barhcs OktatKzpont Delphi modul - 4. fejezet

    50.

    s vgre minden rendben, a kdunk megfelelen mkdik, programunk sszead,kivon, oszt, szoroz. Sajnos tudomsul kell vennnk, hogy minden programfejlesztsajt maga alatt vgja a ft, ugyanis a feladat megfogalmazsakor mr ahibakezelsek tmegt fogjuk magunkra szabadtani.

    Hibakezelsek a delphiben:Korbbi modulokon bell mr volt sz a programok hibirl, melyek alapveten ktcsoportra bonthatak:

    Runtime (futsidej) hibk:Ezek ellen kevsb tudunk vdekezni. Legtbbszr a programozn kvlll okokvezetnek ezekhez (floppyra trtn ments sorn nincs lemez a meghajtban,vagy a nyomtat nincsen bekapcsolva, esetleg a hardverek haldokolnak). Az ilyenjelleg hibk megszaktjk a programunk szablyszer futst, s azopercisrendszer megfelel hibakezel rutinja veszi t a vezrlst.Termszetesen igyekeznnk kell ezek ellen is vdekezni, hisz ha elvesztjk azirnytst, nem biztos, hogy visszakapjuk majd a tovbbfuts lehetsgt.

    Programozi hibk:Amik a korbban mr tbbszr emltett kt fcsoportba sorolhatk: szintaktikai, sszemantikai hibk. A kezdprogramozk leggyakrabban az elscsoportba sorolthibkat kvetik el (elgpelsek, azonostk helytelen megadsa, deklarcisproblmk), mg a ksbbiekben egyre gyakrabbakk vlnak a szemantikai hibk(a program logikai hibi, tmbn tli indexelsek, elgazsok, ciklusok helytelenfelptsei).

    Ha szeretnnk, hogy az irnyts vgig a keznkben maradjon, trekednnk kell

    mindkt fenti hibacsoport elfordul hibit magunknak kezelni, megakadlyozvaezzel, hogy programunk felett az opercisrendszer vegye t az uralmat. Erre adelphi is knl lehetsgeket:

    A RAISE utasts:A hibakezels lnyege, hogy a fejleszts sorn felfedezve a hibt egy raiseutastst helyeznk el a kdban, melyben megvizsglhatjuk, hogybekvetkezik-e a hiba, s amennyiben igen, gy mi kezelhetjk azt, mieltt azirnyts kikerlne a keznkbl. (konkrt pldt is tallunk a delphi sgjbanha a raise utastsra rkeresnk).

    A TRYEXCEPTEND szerkezetMaga a szerkezet hasonlt az elgazsok felptsre. A TRY utasts utnadjuk meg, milyen mvelete(ke)t kell vgrehajtani, majd az EXCEPT utaststkveten adjuk meg a kivtel(ek) kezelst. Itt a kivtelek kezelse nem ms,mint az, hogy hajtsa vgre a program az utastsokat, kivve ha, mertakkor A szerkezetre szintn tallunk pldt a sgban.

    A TRYFINALLYEND szerkezet:A TRY FINALLY szerkezetet akkor hasznljuk, ha egy sszetettutastssorozat minden elemnek vgre kell hajtdnia, de elfordulhat, hogyez mgsem sikerl. Ekkor az els rszben a vgrehajtand utastsokszerepelnek majd, s a FINALLY tartalmazza majd a sikeres mveletekvgrehajtsa utni zrssal kapcsolatos tennivalkat.

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    51/176

    Barhcs OktatKzpont Delphi modul - 4. fejezet

    51.

    Tesztels, hibakeress:A fenti hibakezelsek brmelyikt hasznlhatjuk a programok fejlesztse sorn, denem szabad elfeledkeznnk arrl, hogy hibt csak gy tallhatunk, ha krltekintenkeressk azt! A tesztelsnek nem az a clja, hogy meggyzzk magunkat aprogramunk hibtlan voltrl (tudomsul kell vgre vennnk, hogy: nincs tkletes

    program, csak olyan, melynek mg nem talltk meg a hibit), hanem az, hogyminl tbb hibt ki tudjunk javtani a fejleszts alatt, mieltt kikerl a keznkbl aprogram.Nzzk rgtn az alapmveleteket vgz alkalmazsunkat. Mint megllaptottuk,tkletesen mkdik, szmol, ahogy azt a gomboktl vrjuk. Az elkvetkezendkbenszndkosan hibkat fogunk elkvetni programunkban, mely a Delphi futsnakazonnali hibazenettel ksrt megszaktst fogja eredmnyezni. Ez nmagbanmg nem lenne problma, de ne feledkezznk el rla, hogy a vals idej fejlesztsesetn egy hiba a vals idejprogram futst szaktja meg. Ha hibazenetet kapunk,igyekezznk rtelmezni azt, majd a nyugalmunk megrzse rdekben a httrbenfut Delphi Run menpontjt vlasztva szaktsuk meg a vals idej futtatst aProgram Reset paranccsal, s teszteljnk tovbb Nzzk ht most egy picittzetesebben meg a programunkat:

    - Kezdjk mondjuk azzal, hogy resen hagyjuk a beviteli mezket, smegprblunk elvgezni egy sszeadst. A hibazenet:

    Vegyk tudomsul az zenetet, majd a fent emltett Run/Program Reset parancsothajtsuk vgre. Termszetesen esznkbe nem jutna gy futtatni a programot, hogynem adunk meg rtkeket, de ezt a Mariska nni nem tudja csak kattint, ami ezta hibt adja majd. A hiba oka: t szeretnnk alaktani egy szveget szmm denincs szveg Pech, prbljunk mst:

    - Adjunk neki szveget, rjunk be egy k bett az edtA-ba, majd adjuk ssze

    Bizony, a k tnyleg nem vals egsz rtk Sajnos ugyanezt zeni majd ahibazenet, ha nem egsz szmokat szeretnnk sszegezni. Taln rezhet, hogy aprogramunk elg szerny tudssal rendelkezik (egy tesztelnem 5+5=10-el tesztel)

    - Osszunk mg el kt szmot: 4-et az edtA-ba, 0-t az edtB-be, s oszts

  • 7/21/2019 Delphi tanfolyami jegyzet.pdf

    52/176

    Barhcs OktatKzpont Delphi modul - 4. fejezet

    52.

    s nem folytatjuk A hibazenetekkel lassan a fejlesztsek sorn szpen megfogunk bartkozni, csak a hibazenet fontos rszeire kell koncentrlnunk, s ahttrben fut kdnak kell elttnk lennie, hogy ne tudjon kihozni bennnket sajtprogramunk a sodrunkbl.

    Hibajavtsok az alkalmazsunkban:Prbljuk meg korriglni a fenti hibinkat, hogy legalbb ez a hrom hibazenet nejelenjen meg a programunk futsa sorn:

    7. Az els hibt egyszeren korriglhatjuk, ha a kdban egy elgazsbahelyezzk az utastsainkat, melyben elszr megvizsgljuk a kt alapadatmezjnek ressgt, s csak akkor hajtjuk vgre a mveletet, ha azoktartalmaznak rtkeket. Termszetesen stlusosan kln rdemesmegvizsglnunk a