Dr. Szabó László: A Delphi 2.0-ról röviden

Hasonló dokumentumok
Az eszközpaletta. Felsı sor balról jobbra. Második sor balról jobbra 1/7

A Delphi megjelenése

3. modul - Szövegszerkesztés

6. Alkalom. Kép ClipArt WordArt Szimbólum Körlevél. K é p

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

3.1 A Windows alkalmazás (project) felépítése

3. modul - Szövegszerkesztés

Útmutató a MATARKA adatbázisból való adatátvételhez

Adatbáziskezelés alapjai. jegyzet

Thermo1 Graph. Felhasználói segédlet

DELPHI tanfolyami jegyzet

WINDOWS XP - A GRAFIKUS FELÜLET KEZELÉSE

3. ALKALOM. Felsorolás Helyesírás ellenırzés Váltás kis és nagybető között Táblázat Ablak felosztása Formátummásoló FELSOROLÁS ÉS SZÁMOZÁS

Programozás alapjai. 5. előadás

Belépés a rendszerbe. Gyors menü

Operációs rendszerek. Tanmenet

1. A NÉPESSÉGNYILVÁNTARTÓ PROGRAM TELEPÍTÉSI FELTÉTELE. A

2. ALKALOM. Bekezdés Elválasztás Tabulátor Vezérlıkarakterek Beállítás Oldalbeállítás BEKEZDÉS

Mobil Telefonon Keresztüli Felügyelet Felhasználói Kézikönyv

A szerzõrõl... xi Bevezetés... xiii

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Választó lekérdezés létrehozása

Java II. I A Java programozási nyelv alapelemei

Táblázatok. Táblázatok beszúrása. Cellák kijelölése

Minőségellenőrzési kérdőív kitöltő program Felhasználói kézikönyv

Algoritmizálás és adatmodellezés tanítása 1. előadás

Chat felhasználói segédlet

Oktatási segédanyag. Weboldalszerkesztési gyakorlatok

ÁVF oktatási és közösségi portál

7. Előadás. Makrók alkalmazása. Salamon Júlia. Előadás I. éves mérnök hallgatók számára

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

9. óra operációs rendszerek. Grafikus operációs rendszer

3.2. Az alkalmazások ablaka

Képek és grafikák használata

Egyszerűbb a Google keresőbe beírni a Sharepoint Designer 2007 letöltés kulcsszavakat és az első találat erre a címre mutat.

Forgalom nyilvántartó program Kezelési útmutató

Visual Basic 2005 Express Edition A VISUAL STUDIO HASZNÁLATA NEM LEKTORÁLT VÁLTOZAT

Operációs rendszerek. Tanmenet

Ismerkedés az új felülettel

Diagram létrehozása. 1. ábra Minta a diagramkészítéshez

Szakrendelések nyitva tartásának nyilvántartása

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák

HATODIK FEJEZET / FÜGGİ MODELLEK / TANGRAM

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

F2. A Delphi 5 Enterprise felhasználói felülete

5. Alkalom. Stílusok és sablonok Általános sablon Meglévı stílusok alkalmazása Új stílus létrehozása Stílusok módosítása Sablonállományok alkalmazása

Objektumorientált programozás Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

LCD kezelési útmutató 4.1 verzióhoz

FELHASZNÁLÓI ÚTMUTATÓ

SAP Business One. Alapfunkciók, alapbeállítások. Mosaic Business System Kft.; Support:

TABULÁTOROK TÁBLÁZATOK KÉSZÍTÉSE. A táblázatok készítésének lehetőségei:

VARIO Face 2.0 Felhasználói kézikönyv

PDF DOKUMENTUMOK LÉTREHOZÁSA

A Windows az összetartozó adatokat (fájlokat) mappákban (könyvtárakban) tárolja. A mappák egymásba ágyazottak.

Meglévő munkafüzet megnyitása, mentése új néven

VarioFace dokumenta cio

Szövegszerkesztés alapok WORD Formázások

Microsoft Excel. Táblázatkezelés. Dr. Dienes Beatrix

Excel VI. Haladó ismeretek. Makrók készítése Visual Basic nyelven Egyszerű Visual Basic program

POSZEIDON dokumentáció (1.2)

Segédanyag a WORD használatához

Ablak és ablakműveletek

Tipp A Word makrók kimerítõ tárgyalását megtalálhatjuk az O Reilly gondozásában megjelent Writing Word Macros címû könyvben.

Alapvető beállítások elvégzése Normál nézet

Adat mentés. A program segítség file-ok, mappák mentésében. Mentési csomagokat állíthatunk össze.

kommunikáció Megoldások

munkafüzet open eseményéhez

Táblázatkezelés 2. - Adatbevitel, szerkesztés, formázás ADATBEVITEL. a., Begépelés

Egzinet Partner Portál

Absztrakt feltöltése az ITDK 2013 konferenciára

WEBPAC e-corvina. Egyszerő keresés:

Táblázatos adatok használata

Molekuláris evolúció második gyakorlat

Műveletek makrókkal. Makró futtatása párbeszédpanelről. A Színezés makró futtatása a Makró párbeszédpanelről

Számítástechnikai és kereskedelmi Kft. tel: 62/ fax: 62/ Jövedelem bavallás

Microsoft Word előadás. Bevezetés az informatikába I.

ContractTray program Leírás

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérlıkkel - 1

Az MS Word szövegszerkesztés modul részletes tematika listája

FELHASZNÁLÓI LEÍRÁS a DIMSQL Integrált Számviteli Rendszer Mérleg moduljának használatához

1. A NÉPESSÉGNYILVÁNTARTÓ PROGRAM TELEPÍTÉSI FELTÉTELE. A

CIB Internet Bank asztali alkalmazás Hasznos tippek a telepítéshez és a használathoz Windows operációs rendszer esetén

DebitTray program Leírás

* Az eszköztáron látható menüpontok közül csak a felsoroltak esetén használható a Ctrl.

ReszlAd fájl, kitöltési útmutató:

Látványos oktatás egyszerő multimédiás elemek programozásával Delphiben

Microsoft Excel 2010

ServiceTray program Leírás

Excel Hivatkozások, függvények használata

Az elektronikus napló

ArcGIS 8.3 segédlet 5. Dr. Iványi Péter

1. A NÉPESSÉGNYILVÁNTARTÓ PROGRAM TELEPÍTÉSI FELTÉTELE. A

Excel III. Haladó ismeretek

SharePoint Designer 2007

CÍMLISTA HASZNÁLATA. Címlista alapok

A dátum adatokban csak szám és az elválasztó pont billetyő engedélyezett.

Alapok (a K2D rendszer alapjai)

1. kép. A Stílus beállítása; új színskála megadása.

Átírás:

Dr. Szabó László: A Delphi 2.0-ról röviden BEVEZETÉS Windowsos alkalmazások fejlesztéséhez jó darabig csak a - legyünk ıszinték, nem igazán könynyen kezelhetı - C nyelv állt rendelkezésre. Mikor a Microsoft kihozta Visual Basic nevő, komponens alapú fejlesztı rendszerét, a Borland is elérkezettnek látta az idejét, hogy - miután már korábban megjelentette népszerő Turbo Pascal programnyelvét Windowsos változatban - vizuális fejlesztıi környezettel lássák el a Pascal-t. Így született meg a Delphi fejlesztırendszer, amit óriási lelkesedéssel fogadtak a Windowsos programozók. Könnyedén és gyorsan hozhatunk létre segítségével igényes, bonyolult Windows programokat. A korszerő 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 elı (ezzel szemben a Visual Basic interpreter típusú program, azaz a forráskódot futási idıben értelmezi). A Delphi programozásához persze újszerő, vizuális fejlesztıi 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. Ebben nyújthat segítséget a szerzı korábbi munkája, A Pascal programnyelv címő segédlet. Az Object Pascal programozói nyelvezete az angolra épül, s maga a Delphi feliratok, menük, üzenetek stb. is angolul szerepelnek. Ezért elınyt jelenthet az angol nyelv bizonyos szintő ismerete. Jelen a kiadvány a kezdı felhasználók számára ad áttekintést a Delphi 2.0 32 bites rendszer használatáról. Teljes körő ismertetésrıl természetesen nem lehet szó, a témáról könyvek tucatjai jelentek meg. Ezért a részletesebb információkat referencia könyvekbıl kell beszerezni. 1. A Delphi megjelenése A Delphi elindítása után a következı képernyıvel jelentkezhet be: http://www.jegyzetek.hu/ 1

A Delphi fejlesztıkörnyezet négy fı területbıl áll: a fejrészbıl, ami a menüt, az eszközöket és a komponenseket tartalmazza, a bal oldalt látható objektumfelügyelıbıl (Object Inspector), a formszerkesztı ablakból és a formszerkesztı által részben eltakart kódszerkesztıbıl. Utóbbi úgy válik láthatóvá, ha a formszerkesztı alól "kilógó" részére rákattintunk (vagy F12-t nyomunk). http://www.jegyzetek.hu/ 2

1.1. A Delphi munkaterület fejrésze 1.1.1. A menü Bármilyen száraznak is tőnhet a következı rész, a menük többé-kevésbé részletes ismertetése kikerülhetetlen. Elızetesen csak annyit kell megemlíteni, hogy a Delphi menüje is helyzetérzékeny, azaz esetenként a legördülı menülista tételei attól is függnek, hogy éppen milyen mőveletet végezünk. A File menü New...: A menüpont kiválasztásakor egy összefoglaló jellegő, többlapos párbeszéd-ablak jelenik meg (New Items), ahonnan új projektet, vagy más elemeket választhatunk. Általában van egyszerőbb módszer is... http://www.jegyzetek.hu/ 3

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, belılük új formok elıállítását tesz lehetıvé. 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 adatkezelı 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. New Application: Innen egyszerőbben nyithatunk új projektet. New Form: Új form hozzáadása. New Data Module: Adatbázis jellegő formot kezdhetünk építeni. Open...: Létezı unitot vagy formot nyit meg, amivel egyúttal a projektünkhöz hozzá is adhatjuk. 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. 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). Add To Project: Formot vagy unitot adhatunk a projektünkhöz,... Remove From Project:... ezzel meg eltávolíthatjuk. Print: Nyomtatás. Exit: A Delphibıl való kilépés egyik lehetısége. http://www.jegyzetek.hu/ 4

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. Delete: Törlés. Select All: A szövegszerkesztı ablak minden sorát kijelöli (formszerkesztıben minden elemet). Align to Grid: Rács, amelynek segítségével pontosan helyezhetık el a komponensek a formokon. Bring to Front: A kijelölt objektumot a többi fölé helyezi,... 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. Tab Order: Egy formon azt lehet beállítani, hogy a Tab billentyővel 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. http://www.jegyzetek.hu/ 5

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 nagybetőket (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 elıre, vagy vissza (Forward, Backward) történjen stb. Replace...: Szöveget cserélhetünk, a Text to find sorba a keresendı, a Replace with sorba a csereszöveget kell beírni. A keresési funkciónál megismert beállítási lehetıségek itt is megvannak. A Replace all bekapcsolásával valamennyi elıfordulást automatikusan lecseréli. Search Again: A keresési, illetve csere mővelet ismételhetı. 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ó). http://www.jegyzetek.hu/ 6

A View menü Project Manager: A Project Manager ablak megjelenítésére való. Project Source: A kódszerkesztı ablakot hozza be, ahol a projekt forráskódú szövegét nézhetjük meg. Object Inspector: Az objektumfelügyelı ablakot jeleníti meg. Alignment Palette: A megnyitott ablakban a kijelölt elemeket egyszerően rendezhetjük el. 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 ellenırzésére használjuk. Call Stack: Hibakeresésnél használjuk, az eljáráshívások ellenırzésére. Watches: A programfutás ellenırzésekor bizonyos változók értékét kísérhetjük figyelemmel. Threads: Másodlagos folyamat megjelenítése. Component List: Komponenseket helyezhetünk el a formon. A komponens palettáról egyszerőbb... Window List: A Delphiben megnyitott ablakok megjelenítésére való. Toggle Form/Unit: A form és a unit között kapcsolgathatunk. Units: A projektben lévı unitok jelennek meg. http://www.jegyzetek.hu/ 7

Forms: A projektben lévı formok jelennek meg. New Edit Window: Egy új szövegszerkesztı (kódszerkesztı) ablak nyílik meg, aminek felhasználásával a forráskódú szöveg különbözı 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. 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ó. Build All: A projekt összes unitját lefordítja. Syntax Check: Ellenırzi a kód szintaktikáját. Futtatás, de fordítás elıtt 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özı beállításokat tenni. http://www.jegyzetek.hu/ 8

A Run menü Run: Futtatja a programot. Ha a program szövege megváltozott, akkor elıbb automatikus fordításra és szerkesztésre kerül sor (jegyezzük meg az F9 billentyőt!). 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óbillentyő. Trace to Next Source Line: Lépés a következı 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övetkezı programsort. Program Pause: Felfüggesztés. Program Reset: Befejezi a lépésenkénti futtatást. Add Watch...: Egy figyelendı változót lehet beírni, a programfutás során figyelemmel kísérhetı 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 mezıben, az értékek a Result mezıben jelennek meg. http://www.jegyzetek.hu/ 9

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. A Database menü Explore: Betölti a Database Explorert, amely lehetıvé teszi az adatbázis-struktúrákban való keresést. Form expert...: Adatbázis beviteli képernyık készítését segíti. A Tools menü Options...: Többlapos párbeszéd-ablakban a Delphi különbözı 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épszerkesztı-rajzoló,... Database Desktop:... a másik pedig a Database Desktop. A Help menü http://www.jegyzetek.hu/ 10

Help Topics: A Tartalom, Tárgymutató és Keresés nevő lapokból álló segítség. About...: A minden programhoz járó Névjegy Delphi változata. Egyáltalán nem fontos, de érdekes: ha az About ablakot megnyitottuk és az Alt gomb lenyomott állapotában beírjuk: team, akkor megtekinthetjük a Delphi létrehozásában közremőködı csapat névsorát. Ha hasonló módon a developers szót írjuk be, akkor a fejlesztık neveit olvashatjuk. 1.1.2. Az eszközpaletta Látható, hogy a Delphi 2.0 ablakai a Windows95-nél megszokott jellemzıkkel bírnak: címsor, ablakkezelı gombok, vezérlımenü stb. A Delphi címsora a Delphi 2.0 - Project1 feliratot viseli (ez a felirat azonban a különbözı állapotoknak megfelelıen - pl. mentés után - változhat!). A menü 11 tételt tartalmaz, amelyekbıl szabványos legördülı menük jelennek meg. 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íthetık 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évı felirat mondja meg, mire is való. Az alapbeállítású nyomógombokat mutatjuk be a következıkben: Open project Megnyit egy létezı projektet. Save all Elmenti a projektet. Add file to project Hozzácsatol a projekthez egy már meglévı formot vagy unitot. Open file Megnyit egy formot vagy unitot. Save file Elment egy kiválasztott form vagy unit fájlt. http://www.jegyzetek.hu/ 11

Remove file from project Eltávolítja a kiválasztott formot vagy unitot a projektbıl. Select unit from list Megnyitja a unit-megjelenítı párbeszéd-ablakot. Select form from list Megnyitja a form-megjelenítı párbeszéd-ablakot. Toggle form/unit A fókuszt a formról a unitra helyezi át. New form Új formot ad a projekthez. Run Futtatja a projektet. Pause Megállítja a projekt futtatását. Trace into Soronkénti futtás. Step over Ez is soronkénti futtatás, de az eljárásokba nem megy bele. 1.1.3. A komponenspaletta A komponenspalettán 11 lapon, tematikus csoportokba győjtve találhatók a Delphi komponensei (összesen mintegy 100 darab). Már a Standard lapon található elemekkel felépíthetı egy átlagos form, azaz Windows ablak (menü, gombok, jelölı 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ügyelı) állíthatjuk be. 1.2. Az objektumfelügyelı 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, betők stb.). Ez történik a Properties nevő lapon. Az Events (események) lapon pedig az egyes elemekhez kapcsolódó eseményekrıl (pl. egérkattintás, billentyőütés stb.) intézkedhetünk. Az objektumfelügyelıben mindig a formszerkesztın aktív (kijelölt) elem tulajdonságai állíthatók, módosíthatók. http://www.jegyzetek.hu/ 12

1.3. A formszerkesztı A formszerkesztı az a felület, amelyen a tervezett Windows ablakot kialakítjuk. A formon (őrlapon) kell elhelyezni a menüt, gombokat stb., az objektumfelügyelıben pedig megadhatjuk ezek tulajdonságait. Már maga a form is 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 az ablakgombokat, de még a rendszermenüt is. Az ábrán egy nyomógomb komponenst tettünk az őrlapra. 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éső állományokban tárolja. http://www.jegyzetek.hu/ 13

1.4. A kódszerkesztı ablak A kód- (szöveg-) szerkesztı ablak alapesetben a formszerkesztı alatt alig látható. Akkor tőnik elı, ha a kilógó alsó részére kattintunk, vagy megnyomjuk az F12 funkcióbillentyőt. A következı ábra szerinti ablak látható: Az ablakban az eddig "megírt" Object Pascal nyelvő 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 megfelelı helyére. A unitok fájljai.pas kiterjesztésőek. 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. Maga a program (azaz "delphiül" project) kódja is megtekinthetı, ha a View menü Project Source parancsát választjuk. A projekt forráskódja.dpr kiterjesztéső állományban tárolódik. http://www.jegyzetek.hu/ 14

Bár az ábrák szerinti kódszerkesztı ablak a kódszövegnek csak kis részét láttatja (valójában ezek is méretezhetı ablakok!), annyi máris kitőnik, hogy az Object Pascal szövegszerkesztıje - a "régi" Turbo (Borland) Pascal 7.0 haladó hagyományait követve - automatikusan kiemeli a programnyelv kulcsszavait, a megjegyzéseket pedig dılt kék betőkkel írja. 2. 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özı részei, mőveletei 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. A Delphiben kétféle programozási stílussal kell dolgoznunk. Az egyik a komponensekkel való programozás. A komponensek elıre elkészített építıelemek, amelyekbıl úgy állítjuk össze a programot, mint egy Lego-játékot az építıkocká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. 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 betőrıl ismerhetjük fel. A komponenseket az őrlapon (formon) helyezhetjük el. Maga a form komponens neve TForm, a ráírt szöveg TLabel, a ráhelyezett nyomógomb pedig TButton stb. 2.1. Elsı Delphi programunk A Delphi felhasználásának módszerét legkönnyebben egy egyszerő programocska elkészítésével mutathatjuk be. A feladat a következı: a kezdı ü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!"). Indítsuk el e Delphit, s máris ott áll kezdı ablakunk, az objektumfelügyelıben pedig a Form1: TForm1 felirat, ami arra utal, hogy a projekt TForm1 nevő elsı formjával dolgozunk. Az ablak címkéjét nevezzük át Elsı Delphi programra. Ehhez az Object Inspector-ban keressük meg a Caption tulajdonságot (valószínőleg ez az aktív), s a Form1 helyére írjuk be az Elsı Delphi program szöveget. Az ablak címsorában már látjuk is az új címkét: http://www.jegyzetek.hu/ 15

Ez tulajdonképpen már most is egy futtatható program. Futtassuk is meg a Run gomb ( ) vagy az F9 funkcióbillentyő 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 jellemzı tulajdonságokkal rendelkezik (méretezhetıség, az Alt + F4 "ismerete" stb.). Ha bezárjuk az ablakot, folytathatjuk a "programfejlesztést". Elıször egy szövegmezıt kell letennünk. Kattintsunk az eszközpaletta Standard lapján a Label komponens jelére ( ), majd tegyük le az őrlapra (kattintsunk a közepére). Vegyük észre, hogy most az objektumfelügyelıben a Label-re vonatkozó tulajdonságokat állíthatjuk be (Label1: TLabel). Az Events lap OnClick eseménymezıjén kattintsunk kétszer. Megjelenik a kódszerkesztı ablak az eseménykezelı sablonnal: procedure TForm1.Label1Click(Sender: TObject); begin end; end közé: Most - egyelıre minden magyarázat nélkül - írjuk be az eseménykezelı utasítást a begin... Label1.Caption:='Kattints a szövegen kívülre!'; Most kattintsunk a form felületére, ezzel a formot tesszük kijelöltté, majd az ismét objektumfelügyelıben az Events lap OnClick eseménymezıjén kattintsunk kétszer. Most az őrlapon való kattintás eseménykezelését oldjuk meg. Ekkor a szövegmezıben a Kattints ide szöveget akarjuk megjeleníteni. Az eseménykezelı sablont egészítsük ki a következı módon: procedure TForm1.FormClick(Sender: TObject); begin Label1.Caption:='Kattints ide!'; end; Ezzel kész is vagyunk a programkészítéssel. Ha ismét megfuttatjuk 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ódszerkesztıbe. A programindításkor az ablakban http://www.jegyzetek.hu/ 16

csúfkodó Label1 feliratot még eltüntethetjük. Rákattintással jelöljük ki az őrlapon a Label-t, majd az Object Inspector Caption mezıjében adjunk a Label-nek egy üres karakternyi nevet (üssünk a Space billentyővel egy szóközt). Az újbóli futtatáskor már üres ablakkal kezdhetünk. Ha kíváncsiak vagyunk, megtekinthetjük programunk forráskódját (noha kezdıként még valószínőleg nem értünk belıle sokat...). Elıször a unit szövegét nézzük meg. Kattintsunk a kódszerkesztı ablak form alól kilógó részére, s már látjuk is a szöveget. Ne felejtsük el, hogy a kódszerkesztı ablak is méretezhetı és használható a gördítısáv is. A projekt forrásszövegét a View menü Project Source parancsával hívhatjuk elı: http://www.jegyzetek.hu/ 17

2.2. A második Delphi program Az ablakok egy speciális típusa a menüvel rendelkezı ablak. Már kezdıként összetett, bonyolult menüszerkezetet tudunk elıállítani, most példaként egy erısen egyszerősített Windows95-ös menüt szerkesztünk. Az ablak egyéb jellemzıi szabványosak. A menüszerkezetet a következı táblázat mutatja be: Fájl Szerkesztés Nézet Súgó Megnyitás Kivágás Nagy ikonok Témakörök Mentés Másolás Kis ikonok Névjegy Bezárás Beillesztés Lista Részletek Ugyanúgy, mint az elsı 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ügyelı Caption sorába beírjuk a szöveget. Most helyezzük el a formon a TMainMenu ( ) nevő 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). http://www.jegyzetek.hu/ 18

Már "csak" a menüt kell megírnunk. Ez a menüszerkesztı ablakban történik. Kattinsunk kétszer a formon lévı TMainMenu komponensre, s megnyílik a menüszerkesztı. Mivel az elsı menühely aktív, írhatjuk is az elsı 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 elsı eleme. Ide írjuk be a "Megnyitás"-t, a "Mentés"-t, majd a "Bezárás"-t. A fımenü második eleme beírásához a jobbranyíl billentyővel 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. http://www.jegyzetek.hu/ 19

A menü persze a formunkon is látható, sıt majdnem úgy mőködik, mint a tervezett program. Ha kipróbáltuk, akkor nincs más hátra, hogy megfuttassuk a programot ( menüvel rendelkezı ablak így néz ki:, F9 vagy Run menü). A kész A forráskódot is megtekinthetjük, itt csupán a type alatt fedezhetjük fel, hogy a programunk menüt tartalmaz. A menü persze még javítható: tagoló vízszintes vonalak helyezhetık el, aláhúzott betőkkel gyorsbillentyőket biztosíthatunk stb. Ezeket a lehetıségeket késıbb még tárgyalni fogjuk. 3. A komponensekrıl Az elızı fejezetekben láthattuk, hogy a programfejlesztés a Delphi-ben valóban egyszerő, de a felhasználható komponenseket meg kell ismernünk. Ugyancsak szükséges, hogy a komponensekhez tartozó tulajdonságokat is ismerjük. A következıkben ezeket tekintjük át - terjedelmi korlátok miatt korántsem a teljesség igényével. meg. 3.1. A Standard lap komponensei A komponenspaletta elsı, Standard lapján a leggyakrabban használt komponenseket találjuk TMainMenu Menütervezéshez használjuk. TPopupMenu Gyorsmenü tervezéséhez használjuk. TLabel Szövegmegjelenítésre használjuk. TEdit Egysoros szövegmezı. http://www.jegyzetek.hu/ 20

TMemo Többsoros szövegmezı. TButton Nyomógomb. TCheckBox Jelölınégyzet. TRadioButton Rádiógomb. TListBox Lista létrehozása. TComboBox Bıvíthetı lista létrehozása. TScrollBar Gördítısáv. TGroupBox Feliratos csoportablak. TRadioGroup Rádiógomb csoportablak. TPanel Felirat nélküli csoportablak. 3.2. Az Additional lap komponensei Egyéb, különlegesebb, de még mindig kissé általános jellegő komponensek győjtıhelye. TBitBtn Szöveggel, ábrával ellátható nyomógomb. TSpeedButton Grafikával ellátható nyomógomb. TMaskEdit A TEdit-hez hasonló, de itt megadható, hogy milyen karaktereket fogadjon el. TStringGrid Szövegtáblázat. TDrawGrid Képek táblázatos megjelenítése. TImage Képmegjelenítı. http://www.jegyzetek.hu/ 21

TShape Grafikai alakzatok megjelenítése. TBevel 3D-s vonal vagy négyszög. TScrollBox Gördíthetı felület. 3.3. A Win95 lap komponensei Néhány Windows95-stílusú kiegészítı elem található itt. TTabControl Többlapos párbeszédablak létrehozása. TPageControl Többlapos párbeszédablak oldala. TTreeView Tételek hierarchikus listája. TListView Különbözı módokon megjeleníthetı tétellista. TImageList Grafikus képek csoportlistája. THeaderControl Fejléc-szerkesztı (táblázatokhoz). TRichEdit Rich text formátumú szövegdoboz. TStatusBar Állapotsor. TTrackBar Tolópotméter (csúszka). TProgressBar Egy mővelet idıbeli lefolyását szemléltetı sáv. TUpDown Le-fel nyíl adatkereséshez. THotKey Billentyőkombináció megadása futási idıben. 3.4. A Dialogs lap komponensei A Dialogs lap komponensei a párbeszéd-ablakok néhány típusát segítik elkészíteni. http://www.jegyzetek.hu/ 22

TOpenDialog A megszokott fájlnyitó párbeszéd-ablak. TSaveDialog Mentés párbeszéd-ablak. TFontDialog A betőbeállítások párbeszéd-ablaka. TColorDialog A színbeállítás párbeszéd-ablaka. TPrintDialog Nyomtatás párbeszéd-ablak. TPrinterSetupDialog A nyomtató-beállítás párbeszéd-ablaka. TFindDialog Keresés párbeszéd-ablak. TReplaceDialog Csere párbeszéd-ablak. 3.5. A System lap komponensei A System párbeszéd-lapon rendszer- és egyéb alkalmazáskomponensek találhatók. TTimer Idıkapcsoló, amivel beállítható idıközönként alprogram-hívásokat lehet végrehajtani. TPaintBox Rajzfelület kialakítása. TFileListBox Az aktuális meghajtó tartalmát jeleníti meg. TDirectoryListBox A könyvtári struktúrát mutatja meg. TDriveComboBox Meghajtó-választás. TFilterComboBox A TFileListBox szőrése. TMediaPlayer Multimédia ablak. TOLEContainer OLE kliens. http://www.jegyzetek.hu/ 23

TDDEClientConv OLE kliens létrehozása. TDDEClientItem A szerver-kliens irányú kapcsolat beállítása. TDDEServerConv DDE szerver létrehozása. TDDEServerItem1 A kliens-szerver irányú kapcsolat beállítása. 4. A formokról A Delphi alapeleme a form vagy őrlap. Az őrlap 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 őrlapon. Az alkalmazás készítésének elsı szakasza nem más, mint a TForm objektum megszerkesztése (a komponensek elhelyezése), a tulajdonságok és eseménykezelések megadása. 4.1. A formok tulajdonságai A Delphi objektumainak tulajdonságait általában az Object Inspector-ban, magyarul objektumfelügyelıben á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ügyelı kétlapos ablak. Az egyik, Properties nevő lapon a tulajdonságokat, az Events lapon pedig az eseményeket állíthatjuk be. http://www.jegyzetek.hu/ 24

A tulajdonságokat a formok tulajdonságainak sorravételével tárgyaljuk. Egyéb esetekben használhatjuk a Delphi súgóját: jelöljük ki a tulajdonságot, és nyomjuk meg az F1 billentyőt. 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, egyelıre üres részre kattintsunk rá, s a legördülı listából - amely a formon található komponenseket tartalmazza - kiválaszthatjuk a kívánt elemet. 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 idıben olyan kicsire módosítódik, hogy tartalma nem fér el benne - automatikusan kiegészül gördítısávval. BorderIcons A tulajdonságnevek egy része elıtt + jel látható (hasonló a Windows Intézıhö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 elıtte, akkor viszont összezárható). A BorderIcons tulajdonsággal egyébként a Windowsos rendszermenü és ablakméretezı gombok megjelenésérıl rendelkezhetünk. bisystemmenu: a rendszermenü (vezérlımenü) 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. BorderStyle Az ablakszegély stílusát és méretezhetıségét határozza meg. A legördülı listából a következık közül választhatunk: bsdialog: szabványos párbeszéd-ablak keret, nem méretezhetı. bssingle: nem méretezhetı szimpla vonalas keret. bsnone: nem látható, nem méretezhetı keret, ablakmaximalizáló, minimalizáló ikonja, vagy rendszermenüje lehet. bssizeable: normál méretezhetı keret. bssizetoolwin: olyan mint a bssizeable, de kisebb címsora van. http://www.jegyzetek.hu/ 25

bstoolwindow: olyan mint a bssingle, de kisebb címsora van. Caption Magyarul: képszöveg, felirat. Itt az ablak címsorában szereplı szöveg, az ablak neve. Közvetlenül kell beírni a Caption szövegmezıbe. ClientHeight, ClientWidth A form hasznos, kereten belüli méretét lehet megadni pixelben. Color A form háttérszínét adhatjuk meg. Vagy a legördülı listából választunk, vagy a jobb oldali cellára kétszer kattintunk, s a megjelenı párbeszéd-ablakból választunk. Ctl3D Három- vagy kétdimenziós megjelenítésrıl intézkedhetünk. Cursor Rengeteg kurzorforma közül válogathatunk, amely a form fölötti helyzetre értendı. A súgóban meg lehet tekinteni. Enabled A form csak True állásban reagál külsı eseményekre, False állapotban nem! Font A betők megjelenítését határozhatjuk meg egy többszintő beállítási listán: A három pontra kattintva összetett párbeszéd-ablakban tehetık meg a beállítások. FormStyle Négy beállítási lehetısé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. http://www.jegyzetek.hu/ 26

Height A form magasságát állíthatjuk be pixel egységben. HelpContext Súgó alkalmazása esetén használatos. Hint Ez is a súgóval kapcsolatos tulajdonság (a ShowHint tulajdonság True-ra állításánál aktív). HorzScrollBar A függıleges gördítısá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ítısáv tulajdonságait a VertScrollBar határozhatjuk meg. 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 2.0-val adott "elıre 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. A billentyőleütéseket a False beállításkor a komponens, True választásakor pedig a form dolgozza fel. KeyPreview Left A form helyzetét állíthatjuk be a képernyı bal oldalától (pixelekben mérve). A felsı résztıl való távolságot a Top tulajdonság írja le. Menu Menütervezésnél használjuk. Külön lesz róla szó. Name A formnak (de általában az objektumoknak) adhatunk nevet, hogy olvasható programszövegünk legyen. Legfeljebb egyszerő programoknál hagyjuk meg az eredetit. A név- (azonosító-) adás szabályai már a Pascal-ból ismertek. ObjectMenuItem OLE objektum menücímként való kezelésekor használjuk. http://www.jegyzetek.hu/ 27

PixelsPerInch Azt állíthatjuk be, hogy a form egy inch-nyi részén hány képernyıpont (pixel) legyen (a Scaled tulajdonság True-ra állásánál). A képernyıfelbontástól független programírást teszi lehetıvé. PopupMenu A helyi vagy gyorsmenü nevét adhatjuk meg. Position A form elhelyezését leíró tulajdonság. Öt beállítási lehetıség van: podefault: teljes mértékben a Delphi dönt a form helyérıl és méretérıl. podefaultposonly: a Delphi dönt a form helyérıl, 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épernyı közepére helyezi a formot. 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épernyıtıl. poprinttofit: a nyomtatási méretek úgy módosulnak, hogy ráférjen a papírra. poproportional: a képernyın és a papíron lévı form méretei megegyeznek. Scaled A PixelsPerInch tulajdonságnál volt róla szó. ShowHint A Hint tulajdonságnál volt róla szó. Tag Egész számot adhatunk meg, amivel információt tárolhatunk az adott objektumról. Top is! A form helyzetét állíthatjuk be a képernyı tetejétıl (pixelekben mérve). Lásd Left tulajdonság VertScrollBar Lásd a HorzScrollBar-nál leírtakat. Visible A form látható vagy sem (futási idıben). http://www.jegyzetek.hu/ 28

Width A form szélességi méretét lehet beállítani pixelekben. WindowMenu MDI alkalmazásoknál ablakmenüt lehet a formhoz rendelni. WindowState A form alapértelemezett méretarányát leíró tulajdonság. wsmaximized: Maximalizált mérető form. wsminimized: Minimalizált mérető form. wsnormal: Sem nem maximalizált, sem nem minimalizált mérető form. 4.2. 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, billentyőleütésre stb. reagálva) fut tovább. Az események kezelését segíti az objektumfelügyelı második, Events nevő 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ó kettıs kattintással hívhatjuk elı. A következıkben a legfontosabb eseményeket ismertetjük (itt is a form események alapján). OnActivate Akkor használódik, amikor az inputfókusz áttevıdik a formra. OnClick A formra való kattintás váltja ki. Elsı Delphi programunkban már használtuk. 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 Alt+F4 billentyőpá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). OnCreate A form és komponensei kezdeti tulajdonságainak beállítására használjuk. Az esemény a form elsı végrehajtásakor következik be. http://www.jegyzetek.hu/ 29

OnDblClick Kétszeres egérkattintás váltja ki. 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övegszerkesztıvel kezdünk dolgozni). OnDestroy A memória-felszabadítás eszköze ablakbezáráskor. OnDragDrop, OnDragOver Az egér mozgását figyelı események (l. még OnMouse...). OnHide Az ablak elrejtésekor következik be. OnKeyDown, OnKeyPress, OnKeyUp A billentyőleütéseket figyelı események. OnMouseDown, OnMouseMove, OnMouseUp Az egér mozgását figyelı események (l. még OnDrag...). OnPaint Ha az ablak egy részét ideiglenesen eltakarta valami (pl. egy másik ablak), akkor az újrarajzolásról itt kell gondoskodni. OnResize Az ablak átméretezésekor az elemek áthelyezését és átméretezését itt kell megoldani. OnShow A form megjelenése elıtt bekövetkezı esemény. 5. A legfontosabb komponensekrıl 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 elı (a tulajdonságnevek egyébként minden esetben azonosak). http://www.jegyzetek.hu/ 30

5.1 A TLabel komponens Elsı 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. Align: A Label komponenst a form, illetve a tartalmazó komponens széléhez viszonyítva igazítja. altop: A felsı 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. Alignment: A szövegmezın belül a szöveg elrendezését oldhatjuk meg. tacenter: Középre rendez. taleftjustify: Balra rendez. tarightjustify: Jobbra rendez. AutoSize: True állásnál a címke felveszi a szöveg méretét, False állásnál nem. 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. Wordwrap: True esetén sortörést állítunk be. 5.2. A TEdit komponens Egysoros szövegmezı, ahova a felhasználó beírhat valamit, de néha üzeneteket is megjelenítenek benne. AutoSelect: True állásnál ha a fókusz a mezıre kerül, akkor a benne lévı szöveg kijelölıdik. AutoSize: True állásnál a szerkesztési terület magassága a választott betőmérethez igazodik, szélessége azonban nem változik. CharCase: A beírt szöveg karaktereit konvertálja (vagy nem konvertálja). eclowercase: A beírt szöveget kisbetőssé alakítja. http://www.jegyzetek.hu/ 31

ecuppercase: Nagybetőssé konvertál. ecnormal: Kis- és nagybetők is megjeleníthetık, azaz a szöveg olyan lesz, ahogy a felhasználó begépelte. HideSelection: True állásnál ha a fókusz a mezırıl elkerül, akkor a benne lévı szöveg kijelölése megszőnik, ellenkezı esetben megmarad. MaxLength: A begépelhetı karakterek számát adhatjuk meg. 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. ReadOnly: True állásnál csak olvasható a szöveg, nem szerkeszthetı. Text: A mezıben megjelenı kezdeti szöveg. 5.3. A TMemo komponens Többsoros szövegmezı, ahol majdhogynem korlátlan hosszúságú szöveget jeleníthetünk meg. Tulajdonságai - minthogy a TEdit-tel rokon komponens - sok tekintetben azonosak. Lines: A szövegmezıbe írhatunk be szöveget. Vagy a három pontra kattintunk, vagy a tulajdonság mezıre kétszer, s a megjelenı ablakban szerkeszthetjük szövegünket. WantsTabs: Ha azt akarjuk, hogy a felhasználó a tabulátor billentyőt is használhassa a szövegszerkesztés során, True-ra kell állítani. False esetén a fókuszt mozgatjuk a Tab billentyővel a formon. WantReturn: True esetén a felhasználó az Enter-rel sort emelhet, False esetén az Enter-t a form kapja meg feldolgozásra. 5.4. A TButton komponens Egyszerő nyomógomb, ami a Windowsos alkalmazások gyakorlatilag kikerülhetetlen eleme. Cancel: True esetén a nyomógomb az Esc billentyőre is reagál. Default: True esetén a nyomógomb lesz az alapértelmezett, így az Enter billentyővel is mőködtethetjük. 5.5. A TBitBtn komponens Ez is nyomógomb, ami az Additional lapon található. Abban különbözik a TButton komponenstıl, hogy a szövegen kívül bittérképes grafika is elhelyezhetı rajta. Tulajdonságai természetesen hasonlítanak a TButton-ra, itt csak a TBitButton tulajdonságait vesszük sorra. http://www.jegyzetek.hu/ 32

Glyph: A nyomógombon elhelyezendı á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épszerkesztı 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. Kind: Tizenegy különbözı Delphi-szabvány szerinti gomb közül választhatunk. Layout: Az ábra helyzetét határozhatjuk meg (balra, jobbra, fel, le. Margin: A gomb és kerete közötti távolság megadása. NumGlyphs: Egy gombon több, de maximum négy azonos mérető kép is elhelyezhetı. Ezek számát állíthatjuk be itt. Spacing: A felirat és a keret közötti távolság megadása. 5.6. A TCheckBox és a TRadioButton komponens A TCheckBox a jól ismert jelölınégyzet, amibıl több is elhelyezhetı egy csoportban, s rákattintással több is kijelölhetı. Ha egymást kizáró lehetıségek közül kell választani, a TRadioButton (rádiógomb) lehetısé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). 5.7. A TListBox és a TComboBox komponens A TListBox egy görgethetı listaablak, a lista elemei közül választható ki a kívánt elem. A TComboBox is egy listaablak, de itt van lehetıség a listától eltérı 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 lehetısé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 sorbarendezıdik. Style: A lista megjelenési formáját lehet beállítani. 5.8. 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. http://www.jegyzetek.hu/ 33

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 elsı 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. Options: Rengeteg - elsısorban a táblázat kinézetéért felelıs - tulajdonság állítható itt be. Például: gofixedvertline: False választásakor az elsı (rögzített) sor cellák nélküli összefüggı sáv lesz. gofixedhorzline: False állásban az elsı (rögzített) oszlop cellák nélküli összefüggı sáv lesz. govertline: A False érték beállításakor a táblázat függıleges vonalai eltőnnek. gohorzline: False állásban a táblázat vízszintes vonalai eltőnnek. 6. Az Object Pascal-ról Jó, ha a Delphi felhasználók rendelkeznek bizonyos Pascal ismeretekkel, hiszen a Delphi alapját képezı Object Pascal a Turbo Pascal egy továbbfejlesztett változata. Noha a Pascal korábbi változatáról már készült egy hasonló jegyzet ("Szabó László: A Pascal programnyelv"), amit a kezdıknek mindenképpen ajánlatos áttanulmányozni, a következıkben vázlatosan áttekintjük az Object Pascal legfontosabb sajátságait. 6.1. A Pascal program szerkezete A Delphiben a programírás általában egy form és a komponensek tulajdonságainak leírásával kezdıdik. A Delphi elindítása után megjelent Form1 őrlap mögött voltaképp egy, már megírt program van. Ahogy korábban már láttuk, a formot egy unit (egység) írja le. Egy Delphi program tehát a fıprogramon kívül legalább egy unitot is tartalmaz. A unitok zárt, önálló modulok, adott céllal. Írhatunk ilyet mi is, de a Delphinek - mint a Tubo Pascalnak is - vannak olyan saját belsı egységei, amelyekben a Delphi eljárásait, függvényeit, objektumait stb. helyezték el. Az általunk írt unitok vagy formhoz kötöttek, vagy nem. Elsısorban nagyobb projektek esetén célszerő a logikailag, mőködés szempontjából együvé tartozó programrészeket egy egységbe összevonni. Így - túl azon, hogy a programunk áttekinthetıbb - a fordítás is sokkal gyorsabb lesz. A fıprogram kódját a View menü Project Source parancsának kiadásával jeleníthetjük meg: http://www.jegyzetek.hu/ 34

Egy Delphi-program tehát a következı fı részekbıl áll: programfej, egységek felsorolása, fıprogram. Ettıl izgalmasabb az egységek szerkezete. A Form1-hez kapcsolt unit forráskódja az F12 funkcióbillentyővel hívható elı: Egy Delphi unit a következı fı részekbıl áll: http://www.jegyzetek.hu/ 35

unitfej, az illesztı rész (interface), a deklarációs rész (type, var stb.), a kifejtı rész (implementation), az egységzárás (end.). Az illesztı részben, az interface kulcsszó után definiálhatjuk azt, amit más programrészek is láthatnak. Az itt nem definiált részek csak az adott unit számára elérhetık. Itt kell megadni azt is, hogy melyik más unitok tartalmát akarjuk használni. Ezt kell felsorolni a uses kulcsszó után. A deklarációs részben a unit számára látható típus-, változó-, konstans- és címkedeklarációkat kell megadnunk. Az <IMPLEMENTATION< i>után kell a unitot alkotó eljárásokat, függvényeket leírnunk. Ezek közül kifelé csak azok láthatók, ha az interface után felsoroljuk ıket (az eljárás- és függvényfejeket). Az egységet end. zárja le (a fıprogram végét is pontos end jelzi!). A Delphi unitnak opcionálisan még lehetnek egyéb részei is, ezekrıl azonban itt nem ejtünk szót. 6.2. A Pascal építıelemei Az Object Pascal nyelvő program alapvetı építıelemei, azaz legkisebb értelmezhetı egységei a következık: szimbólumok, fenntartott szavak, azonosítók, címkék, konstansok, elválasztójelek. a) Szimbólumok: A programban bizonyos szimbólumokat használunk. Gondoljunk csak a matematikai mőveletek végzésére (mőveleti jelek, relációs jelek, zárójelek stb.). A Pascal nyelvő programokban használatos szimbólumokat tartalmazza az alábbi táblázat. + - * / = ; :, < > <= >= <> '... ( ) [ ] { } (* *) ^ $ @ # b) Foglalt szavak: A foglalt szavakat, vagy kulcsszavakat a programozónak nem szabad használni a programban változók, konstansok, eljárások, vagy bármi más elnevezésére. A foglalt szavakat a Delphi vastagon írja a forrásszövegben. A foglalt szavakat foglalja össze a következı táblázat (kiegészítve az ugyan nem tiltott, de nem ajánlott szavakkal): and array as asm begin http://www.jegyzetek.hu/ 36

case class const constructor destructor div do downto else end except exports file finalization finally for function goto if implementation in inherited initialization inline interface is label library mod nil not object of on or packed procedure program property raise record repeat set shl shr string then threadvar to try type unit until uses var while with xor absolute abstract assembler at automated cdecl default dynamic export external far forward index interrupt message name near nodefault overrige private protected public published read register resident stdcall stored virtual write c) Azonosítók: Az azonosítók a program bizonyos elemeinek elnevezésére szolgálnak. Pl. a programnak nevet kell adni, az egyes változókat, konstansokat, eljárásokat is el kell keresztelni. Az azonosító ASCII karakterekbıl állhat (kis- és nagybetők, számjegyek). Vannak azonban bizonyos megszorítások: kis- és nagybetőket (ékezet nélkül!) tetszés szerint használhatunk; számmal nem kezdıdhet, de lehet benne; kötıjel nem, de aláhúzásjel ( _ ) lehet benne; szóköz, *,!,? nem lehet; azonos változó- vagy konstansnév nem szerepelhet kétszer (eltérı típus esetén sem); fenntartott szó nem lehet; hossza nem meghatározott, de csak az elsı 63 karakter számít. Az elmondottak értelmében jó nevek lehetnek a következık: http://www.jegyzetek.hu/ 37

Hki, Hallgatok, Folyo_Ev, Bbe1, Bbe2, ALMA Ezek azonban rosszak: 2Bbe, Hallgatók, Folyó Év, 222, Egy*Egy, Gyere! Ahhoz, hogy a fordító tudja, hogy pl. a Hallgatok egy változónk azonosítója, a deklarációs részben közölni kell vele. Saját változóink nevét a típusmegadás és a változók felsorolása helyén adhatjuk meg (a type és a var kulcsszavak után). Az azonos típusú változókat vesszıvel elválasztva lehet felsorolni, az utolsó után pedig pontosvesszıt kell tenni. d) Címkék: A címkék azok az elemek, amik használatát általában kerülni kell. De mire is használjuk a címkéket? Arra, hogy a program bármely pontjáról elküldhetjük a vezérlést a program egy másik pontjára. A goto 10; utasítás segítségével például a program vezérlése az utasítás helyérıl átugrik a 10: címkével megjelölt helyre (a címke után kettıspontot kell tenni!). A címke elhelyezkedhet a goto elıtti vagy utáni programrészen. A címke nemcsak szám lehet, hanem szó is (pl. Ide, vagy Gyere). Ahhoz, hogy a fordító felismerje a goto utáni címkét, a deklarációs részben a label kulcsszó után kell elhelyezni. Ha több címke is van, akkor vesszıvel elválasztva kell felsorolni ıket, a végén pontosvesszıvel. e) Konstansok: A konstans lehet szám- vagy szövegkonstans. Állandókat akkor adunk meg, ha egy bizonyos számértéket vagy szövegrészt a programban gyakran használunk. Ezeket az adatokat közvetlenül a programba (pl. képletbe, összefüggésbe) is be lehet írni, de ha esetleg a programfejlesztés során módosítani szükséges, akkor sokkal egyszerőbb állandóként meghatározni, s csak ezt az egy értéket javítani. Ilyen állandók lehetnek például: 1456, 21E7, -273.16, vagy 'Összesen:'. A konstansokat a const kulcsszó után egyenlıségjelet használva ismertetjük, pl. így: sum = 'Összesen:'; vagy T0abs = -273.16;. f) Elválasztó elemek: A Pascal nyelvő programok elválasztó szimbólumai a szóköz és a sorvégjel. A szóköznek a programozás elemeinek felsorolásakor van jelentısége (a használatos szavak közé szóközt teszünk, ez természetes), a sorvég jel pedig általában pontosvesszı (a program végén lévı end után pont). Ha egy programsor után nem teszünk pontosvesszıt, akkor a fordító a következı sort is az elızı folytatásának fogja tekinteni. A program adott helyein megjegyzéseket helyezhetünk el, ez jelentıs mértékben megkönnyíti a forrásszöveg olvashatóságát. A megjegyzéseket kapcsos zárójelek közé tesszük, de használhatjuk a (* http://www.jegyzetek.hu/ 38

és *) párokat is. A Delphi a megjegyzéseket sötétkék dılt betőkkel jeleníti meg a megjegyzéseket. Például: {Az adatbeolvasás kezdete} vagy (* Az n szerinti ciklus vége *) 6.3. Az Object Pascal típusai A Delphi-változók típusai is bıvültek a Turbo Pascalhoz képest. Ezért, igaz csak vázlatosan, de át kell tekintenünk ezeket is. 6.3.1. Egyszerő típusok Az egyszerő típusokhoz tartozó változók típusazonosítóját nem kell a type kulcsszó után ismertetni. Egyes típusok esetén a 16 és a 32 bites Delphi-változatok között különbség lehet. Egész típusok ShortInt 1 bájt elıjeles -128...127 SmallInt 2 bájt elıjeles -32768...32767 Integer 4 bájt elıjeles -2147483648...2147483647 LongInt 4 bájt elıjeles -2147483648...2147483647 Byte 1 bájt elıjel nélküli 0...255 Word 2 bájt elıjel nélküli 0...65535 Cardinal 4 bájt elıjel nélküli 0...2147483647 Valós típusok Real 6 bájt 11-12 j. -2.9E-39...17E38 (kerülendı a használata!) Single 4 bájt 7-8 j. -1.5E-45...3.4E38 Double 8 bájt 15-16 j. -5.0E-324...1.7E308 Extended 10 bájt 19-20 j. -3.4E-4932...1.1E4932 Comp 8 bájt 19-20 j. -2.0E-63...2.0E63-1 Karakter típusok http://www.jegyzetek.hu/ 39

ANSIChar 1 bájt ANSI 1 ANSI karakter WideChar 2 bájt Unicode 1 Unicode karakter Char 1 bájt Unicode (0...255) Karakterlánc (string) típusok ShortString 255 bájt ANSIChar max. 255 karakter String, AnsiString ~3 GB ANSIChar max. 4294967296 WideString ~1,5 GB WideChar Unicode karakterek Logikai típusok Boolean 1 bájt 0, 1 False,True ByteBool 1 bájt. Bájt-mérető numerikus Boolean Bool, WordBool 2 bájt. Word-mérető numerikus Boolean LongBool 4 bájt. Kétszeres Word-mérető numerikus Boolean 6.3.2. Összetett típusok Az összetett típusok egyszerő típusokból összetettek. Ezeket a type kulcsszó után ismertetni kell. Az összetett típusok tulajdonságait a felhasználó szabhatja meg, és saját névvel láthatja el. Felsorolt típus A felsorolt típus esetén egyenként felsoroljuk az összes lehetséges értéket. A felsorolt értékekhez az Object Pascal sorszámokat rendel (0, 1, 2, 3,...). Példák: Madarak = (fecske, golya, sas, bagoly); Lanyok = (Anna, Jolán, Éva, Adrienn); Napok = (Hétfı,Kedd,Szerda,Csütörtök,Péntek,Szombat,Vasárnap); Intervallum típus Az intervallum (helyesebben részintervallum) típus egy nagyobb intervallumon belül egy kisebb intervallumot határoz meg. Például: NagyBetuk : 'A'..'Z'; MunkaNapok : Hétfı..Péntek; Az elsı példa a char típus, a második példa pedig az elızı pontban ismertetett Napok sorszámozott típus intervalluma. Az intervallum megadásánál megfigyelhetjük, hogy az intervallumok jelölésére két pontot (..) kell használni. http://www.jegyzetek.hu/ 40