Negyedik Genercis Nyelvek Delphi 1 Windows bevezets 2
Negyedik Generációs Nyelvek ( Delphi ) 1. Windows bevezetés 2. Delphi alkalmazások felépítése 3. Delphi fejlesztőkörnyezet 4. Standard komponensek
1. WINDOWS BEVEZETÉS
Bevezetés WINDOWS Lehetővé teszi az egymással kommunikáló programok párhuzamos futtatását és a programok szabványos ablakokra alapozott- grafikai megjelenítését. Alkalmazások: • DOS alapúak - DOS-t és BIOS-t felhasználók - Direkt hardverkezelők • Windows alapúak Az alkalmazás egy méretezhető, mozgatható ablakban fut. • Multitasking 1 program futtatása több példányban, ill. több program párhuzamos futtatása Delphi I/2
Bevezetés Windows rendszer = dinamikusan szerkeszthető könyvtárak Megkötés: Egy Windows program minden része Windows alapelven kell működjön. Objektum orientált programozás Minden ablak egy objektum: • Adatai: Adatai címe, menüje, színe, kurzor formája, ikonja, . . . • Viselkedése: Viselkedése reakciója a különböző külső és belső eseményekre Delphi I/3
Bevezetés Windows eseménykezelés, üzenetvezérlés · Esemény Egy külső történés ( egy billentyű leütése, az egérgomb lenyomása) Az eseményeket a Windows üzenetekké alakítja át. · Üzenet Egy rekord, mely tartalmaz egy azonosítót, és további adatokat. Egér bal gomb lenyomása WM_LBUTTONDOWN Azonosító = 201 Adatok: X, Y a többi egérgomb és a CTRL, SHIFT bill. állapota Delphi I/4
Üzenetek feldolgozása, kezelése • Az üzeneteket a Windows rendszer szétszórja megfelelő szabályok szerint. Windows Az 'A' billentyű leütésének feldolgozása A Windows üzenetsor Alkalmazás A Alkalmazás üzenetsor A A A Kiírás Főprogram 1. Ablak függvény 2. Ablak függvény Delphi I/5
Nem sorolt üzenetek l az ablakot érintő üzenetek, mint pl. az ablak létrehozása, bezárása Pl. Exit az alkalmazás ablakában Windows Alkalmazás Windows üzenetsor WM_DESTROY WM_QUIT Alkalmazás üzenetsor WM_QUIT Főablak függvénye Főprogram Alkalmazás befejezése Delphi I/6
Üzenetek feldolgozása, kezelése Tehát: • Esemény üzenet • Üzenet rendszerszintű üzenetsor alkalmazás üzenetsor (belső üzenetek is) • Az alkalmazás sorban kiolvassa a saját üzeneteit ("üzenetkezelő ciklus"), majd utasítja a Windows-t, hogy a megfelelő ablakfüggvényt hívja meg • Az ablakfüggvény feldolgozza az üzenetet (egy többágú szelekcióban). Delphi I/7
Üzenetek feldolgozása, kezelése • Végül, a Windows átadja a vezérlést a főprogramnak. Megkezdődhet a soron következő üzenet feldolgozása. Több párhuzamosan futó alkalmazás esetén, a Windows létrehoz mindegyikük számára egy-egy üzenetsort. Delphi I/8
Üzenetek feldolgozása, kezelése Összefoglalás Minden Windows-os alkalmazásban van: • Egy "üzenetkezelő ciklus" • Ahány ablak, annyi ablakfüggvény • Egyéb függvények és eljárások Delphi I/9
2 DELPHI ALKALMAZÁSOK
A Delphi alkalmazás felépítése • Főprogram, projektállomány (*. DPR) • Képernyőtervek (*. DFM) és az azok viselkedését leíró egységek (*. PAS) • Egyéb egységek (esetleg), melyek könyvtárakként működnek • Külső erőforrások (*. BMP, *. ICO, *. CUR, *. HLP) Minden Delphi alkalmazást külön könyvtárban tároljunk! Delphi I / 11
Delphi projektállomány *. DPR Unit (form) *. PAS Lefordított Unit *. DCU Form szöveges leírása *. DFM Unit *. PAS Lefordított Unit *. DCU Erőforrásállomány *. RES Delphi alkalmazás *. EXE Dinamikusan szerkeszthető könyvtárak *. DLL Delphi I / 12
Futáskor: Form (Űrlap) Szerkesztődoboz Nyomógombok Delphi I / 13
Eljárások procedure {Osztálynév. }Eljárásnév(paraméterek); direktívák; Lokális adatok, metódusok; begin utasítások; end; Delphi I / 14
Függvények l A függvények abban különböznek az eljárásoktól, hogy hívásuk után visszatérnek egy előre megadott típusú értékkel Function {Osztálynév. }Függvénynév(paraméterek) : visszatérési érték típusa; direktívák; Lokális adatok, metódusok; begin utasítások; Függvénynév: =visszatérési érték; vagy Result: = visszatérési érték; end; Megj. : a Pascaltól eltérően használhatjuk a függvénynév helyett a Result kulcsszót Delphi I / 15
Az Object Pascal osztálymodell Type 1 osztály= 1 fájl A Delphiben 1 fájlban lehet több osztály is TOsztály = Class ( TŐs. Osztály) Mezőlista ; Metóduslista ; Jellemzőlista ; End; Delphi I / 16
Az Object Pascal osztálymodell • Előfordulásai dinamikusan jönnek létre • Egyszeres öröklődés • Minden új típusnak van őse, a TObject (A közös ős előnyét lásd később) • Mezőlista: adatmezők leírása Delphi I / 17
Adathozzáférés korlátozása l A hozzáférésnek-amely adatokra, metódusokra vonatkozik- a Delphiben 4 szintje van • • Ø Ø Private (privát) Protected (védett) Public (publikus) Published (publikált) Private (privát) adatok és metódusok: Csak az illető osztály metódusaiból érhetők el Protected (védett) adatok és metódusok: A kurrens osztály és a leszármazott osztályok metódusaiban láthatók Public (publikus) adatok, jellemzők és metódusok: Kivűlről(objektumból) is elérhetők Published (publikált) adatok és jellemzők: Mint a public, de tervezési időben is elérhetők(Objektum felügyelőben-Object Inspector lsd. később) Delphi I / 18
Adathozzáférés korlátozása l Ezeket a kulcsszavakat az osztálydeklarációban használjuk, tetszőleges számban elhelyezhető, először az adatokat kell felsorolnunk, majd a metódusokat Type TOsztaly=Class Private Adatok; Metódusok; Protected Adatok; Metódusok; End; Delphi I / 19
Egységek Egység – A főprogramhoz hozzászerkeszthető tárgykód • Fordítás után. TPU kiterjesztést kap • A tárgykód mérete < 64 Kbyte – Az egység célja: • Korábban kipróbált, bevált programrészek hozzáférhetővé tétele más programokban • Megvalósítási részletek elrejtése • A kód mérethatárának kiterjesztése – Az egységnek meghatározott feladatköre ("kohéziója") van! Delphi I / 20
Egységek Az egység (Unit) felépítése Egységfej Illesztő (interface) rész Kifejtő (implementációs) rész Végrehajtó (inicializációs) rész Delphi I / 21
Egységek Az egység részei: – Egységfej • Unit egységnév; – Illesztő rész • Interface – Globális deklarációk (változók, típusok, konstansok, eljárásfejek. . . ) – Kifejtő rész • Implementation – A globális és lokális eljárások kifejtése – Végrehajtó rész Begin u. Előkészítő tevékenységek End. Delphi I / 22
Egységek használata Egység szerkesztése, fordítása, tárolása – Az egység forráskódját ugyanúgy szerkesztjük, mint bármely programot. – Az egységnévnek meg kell egyeznie a. PAS állomány könyvtári nevével! – Az egységet lemezre fordítjuk. A. TPU állomány a fenti könyvtárban keletkezik. Delphi I / 23
Egységek használata (folytatás) Az egységet használó program fordítása – Ne feledkezzünk meg a USES egységnév utasításról! – A programot célszerű a Compile/Make (F 9) menüpont szerint fordítani (ha megváltozott az egység forráskódja, akkor az a programmal együtt ismételten lefordítódik). Delphi I / 24
Egységek használata (folytatás) Az egységet használó program futtatása, belövése – Ha a programot is lemezre fordítottuk (. EXE), az mindazt tartalmazza, ami a futtatáshoz kell (a. TPU állomány már nem szükséges). – Forrásnyelvi nyomkövetés (F 7) az egység rutinjaiban akkor lehetséges, ha az egység forráskódja is elérhető. Delphi I / 25
A projektállomány szerkezete Új projekt létrehozásakor a keretrendszer létrehoz egy projektállományt, egy ablakot, és az ehhez tartozó egységet. program p. Udvozles; uses Forms, A program belépési pontja a main ! u. Udvozles in 'u. Udvozles. pas' {frm. Udv}; {$R *. res} begin Application. Initialize; Application. Create. Form(Tfrm. Udv, frm. Udv); Application. Run; end. Delphi I / 26
Képernyőterv leíró állomány (*. DFM) • A formon levő objektumok grafikus (külalaki) tulajdonságait tartalmazza binárisan • Vizuális tervezéssel jönnek létre • Megtekinthetők szöveges formában is Delphi I / 27
A formhoz tartozó egység (*. PAS) • tartalmazza a megtervezett formosztály definícióját és a rajta levő komponensek viselkedését. • Mindegyik űrlaphoz(formhoz) tartozik egy Pas állomány Delphi I / 28
3. FEJLESZTŐKÖRNYEZET
Bevezetés A Delphi fejlesztő környezet jellemzői: ellemzői • Windows-os alkalmazások (16 és 32 bit) • Vizuális fejlesztői eszköz, RAD (Rapid Application Development) • 4 GL (4 th Generation Language) • Hátterében OO nyelv áll (Object Pascal) • Készíthetünk vele EXE-t és DLL-t Dinamikus adatcsere lehetőségek: DDE, OLE 1. 0, 2. 0, OLE Automation • Delphi I / 30
Bevezetés A Delphi fejlesztő környezet jellemzői: l Adatbázis-kezelés IDAPI (Integrated Database Application Programming Interface) • DBase, Paradox, Oracle, Ingres, Informix, Interbase, . . . • Helyi és távoli adatforrások • Táblák, lekérdezések, jelentések l l MAPI (Multimedia Application Programming Interface) Internet-es alkalmazások Delphi I / 31
Osztályhierarchia l l l A Delphiben minden komponens valamelyik osztályhoz tartozik Mivel a Delphi 7 rengeteg komponenst kínál a programozóknak, az osztálydiagram felépítése bonyolult. A Delphi osztályok legnagyobb része komponensosztály Delphi I / 32
Osztályhierarchia l Egy-egy komponensre egy-egy osztály épül fel, ezek a komponensek megtalálhatók az ún. komponenspalettán l Mint látjuk az összes osztály közös őse a TObject. A VCL(Visual Component Library) vizuális komponenskönyvtár, a TObject osztályból nagyon sok osztályt származtat l Delphi I / 33
Delphi komponensek Delphi komponenstípusok: • Láthatók (Edit, Button, . . . ) • Láthatatlanok (Timer, Main. Menu, . . . ) Használatuk: • A komponenseket összecsipegetjük a komponenspalettáról és elhelyezzük őket a formon • Eredményül, a rendszer mezőként deklarálja a megfelelő formosztályban (tartalmazási kapcsolat ) Delphi I / 34
A keretrendszer komponenspaletta form vizuális képe objektum-felügyelő kódszerkesztő ablak Delphi I / 35
Gyakran használt funkcióbillentyűk: • F 11: megjeleníti az objektum-felügyelőt • F 12: váltás a form és kódszerkesztő ablakok között • SHIFT + F 12 : váltás a unitok között • F 9 : fordítás, futtatás • F 7 , F 8 : lépésenkénti végrehajtás Delphi I / 36
A Delphi alkalmazás felépítése (űrlapok) unit Unit 1; interface uses… Főprogram (*. DPR) Uses Unit 1, Unit 2, Unit 3, . . . Begin. . . End. unit Unit 2; interface uses… Delphi I / 37
4. STANDARD KOMPONENSEK
Komponensek TComponent Vizuális komponensek Nem látható komponensek TControl TComponent alosztályai a TControl-t kivéve Ablakalapú vezérlők Nem ablakalapú vezérlők TWin. Control TGraphic. Control Delphi I / 39
Standard komponensek TObject TComponent TControl TLabel TWin. Control TButton TEdit TMemo Delphi I / 40
Standard komponensek TComponent: • Komponensek közös őse Innen származó tulajdonságok: • Name: String[63] (a komponens programbeli Name neve) • Owner: TComponent (tulajdonosa) Owner Delphi I / 41
Standard komponensek TControl • a látható komponensek absztrakt osztálya • Fontosabb jellemzői: • Parent: TWin. Control Parent (szülőablaka) • A választógombok tulajdonosa (owner) a párbeszédablak owner • A választógombok szülője (parent) a választógomb parent csoport Delphi I / 42
Standard komponensek TControl • Align: al. None, al. Top, al. Bottom, . . . , al. Client Align (igazítás a szülőablakon belül) • Caption: String Caption • Visible: Boolean (látható-e? ) Visible • Enabled: Boolean (fogadja-e az üzeneteket? ) Enabled • Top, Left, Width, Height: Integer • Color: TColor (cl. Red, cl. Silver, . . . ) Color • Drag. Cursor: TCursor (cr. Default, Drag. Cursor cr. Size, cr. Hour. Glass, . . . ) Delphi I / 43
Standard komponensek TControl • Font: TFont (Color, Name, Size, . . . ) Font • Popup. Menu: TPopup. Menu (gyorsmenü, ls. Popup. Menu később) • Fontosabb eseményei: • On. Click, On. Dbl. Click • On. Drag. Drop, On. Drag. Over, On. End. Drag • On. Mouse. Down, On. Mouse. Move, On. Mouse. Up Delphi I / 44
Standard komponensek Main. Menu Menü Label Címke Edit Szerkesztődoboz Button Gomb Check. Box Jelölőnégyzet Delphi I / 45
Standard komponensek Radio. Button Rádiógomb List. Box Listadoboz Combo. Box Legördülő lista Radio. Group Rádiógomb csoport Panel Delphi I / 46
Bit. Button Bitmapas gomb Shape Alakzat Speed. Button Beragadó gomb Mask. Edit Maszkolható szerkesztődoboz Image Kép String. Grid Rács (táblázat) Delphi I / 47
Standard komponensek TLabel • Szerepe: passzív szöveg megjelenítése az űrlapon • Fontosabb jellemzői: • Caption: String Caption • Transparent: Boolean Transparent Delphi I / 48
Standard komponensek TWin. Control • Az "ablakozott" komponensek őse • Fontosabb jellemzői: • Tab. Stop: Boolean Tab. Stop • Tab. Order: -1. . 32767 Tab. Order • Fontosabb metódusai: • Update (frissíti, újrarajzolja) • Set. Focus (fókuszba helyezi) Set. Focus Delphi I / 49
Standard komponensek TWin. Control • Fontosabb eseményei: • On. Enter, On. Exit (be- és kilépéskor) On. Exit • On. Key. Down, On. Key. Up, On. Key. Press Delphi I / 50
Standard komponensek TEdit, TMemo • Szerepük: adat megjelenítése és bekérése • TEdit: egy sorban • TMemo: több sorban • Fontosabb jellemzők: • Text: String Text • TMemo - nál: Lines: TStrings Lines A megjelenített szöveg soronkénti feldolgozása • Max. Length: Integer Max. Length Delphi • Auto. Select: Boolean Auto. Select I / 51
Standard komponensek TEdit, TMemo • Sel. Text: String Sel. Text • Sel. Start, Sel. Length • Password. Char: Char Password. Char • Fontosabb metódusai: • Select. All • Clear. Selection • Cut. To. Clipboard, Copy. To. Clipboard, Paste. From. Clipboard Delphi I / 52
Standard komponensek TEdit, TMemo • Fontosabb eseményei: • On. Enter : belépéskor On. Enter • On. Change : ha a Text változik On. Change • On. Exit : kilépéskor On. Exit Delphi I / 53
Standard komponensek TButton , TBit. Btn • Szerepük: kattintásra betáplált tevékenység elvégzése • Fontosabb jellemzők: • Caption: String Caption • Cancel: Boolean (Esc - re meghívódik) Cancel • Default: Boolean (Enter- re meghívódik) Default • Modal. Result: mr. Ok, mr. Cancel, . . . Modal. Result modális párbeszédablak kilépési oka Delphi I / 54
Standard komponensek TButton , TBit. Btn • TBit. Btn - nál: - Glyph: TBitmap, Num. Glyphs: 1. . 4 Glyph - Kind: bk. Custom, bk. Retry, bk. Ok, . . . Kind • Fontos eseményük: • On. Click Delphi I / 55
Standard komponensek TCheck. Box • Jelölőnégyzet Igaz/ Hamis, Igen/ Nem, . . . állapotok jelölésére • Fontosabb jellemzők: • Checked: Boolean Checked • Allow. Grayed: Boolean (szürkítés Allow. Grayed engedélyezése) • State: cb. Checked, cb. Un. Checked, cb. Grayed State Delphi I / 56
Standard komponensek TRadio. Group • Választógomb csoport egymást kölcsönösen kizáró opciók számára • Fontos jellemzők: • Items: TStrings (az opciók szövege külön Items sorban) • Item. Index: Integer (= 0 első opció, =1 Item. Index második opció, . . . ) • Fontos eseménye: • On. Click Delphi I / 57
Standard komponensek TList. Box • Listadoboz; nem szerkeszthető; egy vagy több sora kiválasztható • Fontos jellemzői: • Items: TString (sorai) Items • Item. Index: Integer (a kiválasztott sor indexe (0 első Item. Index sor, . . . )) • Multi. Select: Boolean (többszörös kiválasztás Multi. Select engedélyezése) • Sel. Count: Integer (a kiválasztott Sel. Count sorok száma) Delphi I / 58
Standard komponensek TList. Box • Selected[i]: Boolean (True ha az i. indexű sor ki [i van választva) • Sorted: Boolean Sorted • Fontos metódusa: • Item. At. Pos : visszaadja a megadott x, y Item. At. Pos koordinátákban levő sorának indexét (egér kattintásakor használjuk) Delphi I / 59
Standard komponensek TCombo. Box • Kombinált lista; közvetlenül szerkeszthető, vagy kiválasztható egy elem a lebomló listából • Fontos jellemzői: • Text: String (szövege) Text • Items: TStrings (a lista elemei) Items • Item. Index: Integer (a kiválasztott listaelem indexe) • Drop. Down. Count: Integer (hány Drop. Down. Count soros legyen a lebomló lista) Delphi I / 60
Standard komponensek TCombo. Box • Sorted: Boolean Sorted • Sel. Text, Set. Start, Sel. Length mint a TEdit - nél. Sel. Length • Style: cs. Drop. Down, cs. Drop. Down. List, Style cs. Owner. Draw. Fixed, . . . • Fontosabb eseménye: • On. Drop. Down (a lista lenyitásakor) On. Drop. Down Delphi I / 61
Standard komponensek Menük használata • Típusai: • Főmenü • Gyorsmenü (egér jobb gombra) TMain. Menu • Főmenü komponens • Vizuálisan szerkesztjük a menüszerkesztővel • Fontosabb jellemzője: • Items[x: Integer]: TMenu. Items Delphi I / 62
Standard komponensek Menük használata • Menüpont szürkítése: • Pl. A File. Menu On. Click eseményére felülbíráljuk az almenüpontok állapotát (pl. Open. Menu. Enabled : = False) Delphi I / 63
Standard komponensek TMenu. Item • Tartalmazza egy menüpont tulajdonságait, metódusait és eseményeit • Jellemzői: • Caption: String Caption - Forróbillentyű: &File - Menüszeparátor: Caption = • Items[X: Integer]: TMenu. Items (az almenüpontok) • Count: Integer (almenüpontok száma) Count Delphi I / 64
Standard komponensek TMenu. Item • Checked: Boolean ("pipa") Checked • Enabled: Boolean (=False szürke) Enabled • Group. Index: Integer (ld. később menük Group. Index összefésülése) • Metódusai: • Add, Insert, Remove (futás közbeni Remove menüátalakítás) • Eseménye: • On. Click Delphi I / 65
Standard komponensek TPopup. Menu • Egyéb komponensek Popup. Menu tulajdonságához kötjük • Vizuális tervezéssel jön létre • Fontosabb jellemzői: • Items[x: Integer] : TMenu. Items • Auto. Popup: Boolean (ha True, akkor automatikusan az Auto. Popup egér jobb gombjának lenyomására megjelenik) • Hasznos metódus: • Popup (megjeleníti a gyorsmenüt) Popup Delphi I / 66
Standard komponensek TPopup. Menu • Hasznos eseménye: • On. Popup: On. Popup Þ megjelenéskor hívódik meg Þ felhasználhatjuk a menüpontok engedélyezésére ill. letiltására Delphi I / 67
- Slides: 68