Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
0
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
1. WINDOWS BEVEZETÉS
2
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ány- ban, ill. több program párhuzamos futtatása
3
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: címe, menüje, színe, kurzor formája, ikonja,... Viselkedése: reakciója a különböző külső és belső eseményekre
4
Egér bal gomb lenyomása
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. WM_LBUTTONDOWN Azonosító = 201 Adatok: X, Y a többi egérgomb és a CTRL, SHIFT bill. állapota Egér bal gomb lenyomása
5
Az 'A' billentyű leütésének feldolgozása
Üzenetek feldolgozása, kezelése Az üzeneteket a Windows rendszer szétszórja megfelelő szabályok szerint. Alkalmazás Főprogram 1. Ablak függvény 2. Ablak függvény Windows Windows üzenetsor Alkalmazás üzenetsor A Kiírás Az 'A' billentyű leütésének feldolgozása
6
Nem sorolt üzenetek az ablakot érintő üzenetek, mint pl. az ablak létrehozása, bezárása Pl. Exit az alkalmazás ablakában Alkalmazás Főprogram Főablak függvénye Windows Windows üzenetsor Alkalmazás üzenetsor WM_DESTROY WM_QUIT Alkalmazás befejezése
7
Tehát: Üzenetek feldolgozása, kezelése 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).
8
Ü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.
9
Minden Windows-os alkalmazásban van:
Ü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
10
2 DELPHI ALKALMAZÁSOK
11
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!
12
Delphi projektállomány Dinamikusan szerkeszthető könyvtárak
*.DPR Unit (form) *.PAS Form szöveges leírása *.DFM Unit *.PAS Erőforrás- állomány *.RES LefordítottUnit *.DCU LefordítottUnit *.DCU Delphi alkalmazás *.EXE Dinamikusan szerkeszthető könyvtárak *.DLL
13
Futáskor: Form (Űrlap) Szerkesztő-doboz Nyomógombok
14
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;
15
Függvények 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
16
A Delphiben 1 fájlban lehet több osztály is
Az Object Pascal osztálymodell 1 osztály= 1 fájl A Delphiben 1 fájlban lehet több osztály is Type TOsztály = Class ( TŐsOsztály) Mezőlista ; Metóduslista ; Jellemzőlista ; End;
17
Előfordulásai dinamikusan jönnek létre Egyszeres öröklődés
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
18
Adathozzáférés korlátozása
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)
19
Adathozzáférés korlátozása
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 End;
20
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!
21
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
22
Egységek Az egység részei: Egységfej Illesztő rész Kifejtő rész
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 Egységek Begin Előkészítő tevékenységek End.
23
Egységek 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.
24
Egységek 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 (F9) 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).
25
Egységek Az egységet használó program futtatása, belövése
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 (F7) az egység rutinjaiban akkor lehetséges, ha az egység forráskódja is elérhető.
26
A program belépési pontja a main !
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 pUdvozles; uses Forms, uUdvozles in 'uUdvozles.pas' {frmUdv}; {$R *.res} begin Application.Initialize; Application.CreateForm(TfrmUdv, frmUdv); Application.Run; end. A program belépési pontja a main !
27
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
28
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
29
3. FEJLESZTŐKÖRNYEZET
30
Bevezetés A Delphi fejlesztő környezet jellemzői:
Windows-os alkalmazások (16 és 32 bit) Vizuális fejlesztői eszköz, RAD (Rapid Application Development) 4GL (4th 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
31
Bevezetés A Delphi fejlesztő környezet jellemzői:
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 MAPI (Multimedia Application Programming Interface) Internet-es alkalmazások
32
Osztályhierarchia 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
33
Osztályhierarchia Egy-egy komponensre egy-egy osztály épül fel, ezek a komponensek megtalálhatók az ún. komponenspalettán 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
34
Delphi komponensek Delphi komponenstípusok:
Láthatók (Edit, Button,...) Láthatatlanok (Timer, MainMenu,...) 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 )
35
A keretrendszer komponenspaletta form vizuális képe objektum-felügyelő
kódszerkesztő ablak
36
F11: megjeleníti az objektum-felügyelőt
Gyakran használt funkcióbillentyűk: F11: megjeleníti az objektum-felügyelőt F12: váltás a form és kódszerkesztő ablakok között SHIFT + F12 : váltás a unitok között F9 : fordítás, futtatás F7 , F8 : lépésenkénti végrehajtás
37
A Delphi alkalmazás felépítése (űrlapok)
Főprogram (*.DPR) Uses Unit1, Unit2, Unit3,... Begin ... End. unit Unit2; interface uses… unit Unit1; interface uses…
38
4. STANDARD KOMPONENSEK
39
Nem látható komponensek TComponent alosztályai a TControl-t kivéve
Vizuális komponensek TControl Nem látható komponensek TComponent alosztályai a TControl-t kivéve Ablakalapú vezérlők TWinControl Nem ablakalapú vezérlők TGraphicControl
40
Standard komponensek TObject TComponent TControl TLabel TWinControl TButton TEdit TMemo
41
Standard komponensek Innen származó tulajdonságok: TComponent:
Komponensek közös őse Innen származó tulajdonságok: Name: String[63] (a komponens programbeli neve) Owner: TComponent (tulajdonosa)
42
Standard komponensek TControl a látható komponensek absztrakt osztálya
Fontosabb jellemzői: Parent: TWinControl (szülőablaka) A választógombok tulajdonosa (owner) a párbeszédablak A választógombok szülője (parent) a választógomb csoport
43
Standard komponensek TControl
Align: alNone, alTop, alBottom, ..., alClient (igazítás a szülőablakon belül) Caption: String Visible: Boolean (látható-e?) Enabled: Boolean (fogadja-e az üzeneteket?) Top, Left, Width, Height: Integer Color: TColor (clRed, clSilver,...) DragCursor: TCursor (crDefault, crSize,crHourGlass,...)
44
Standard komponensek Fontosabb eseményei: TControl
Font: TFont (Color, Name, Size, ...) PopupMenu: TPopupMenu (gyorsmenü, ls. később) Fontosabb eseményei: OnClick, OnDblClick OnDragDrop, OnDragOver, OnEndDrag OnMouseDown, OnMouseMove, OnMouseUp
45
Standard komponensek MainMenu Menü Label Címke Edit Szerkesztődoboz
Button Gomb CheckBox Jelölőnégyzet
46
Standard komponensek RadioButton Rádiógomb ListBox Listadoboz ComboBox
Legördülő lista RadioGroup Rádiógomb csoport Panel
47
Shape Alakzat BitButton Bitmapas gomb SpeedButton Beragadó gomb Image Kép MaskEdit Maszkolható szerkesztődoboz StringGrid Rács (táblázat)
48
Standard komponensek Szerepe: passzív szöveg megjelenítése az űrlapon
TLabel Szerepe: passzív szöveg megjelenítése az űrlapon Fontosabb jellemzői: Caption: String Transparent: Boolean
49
Standard komponensek Az "ablakozott" komponensek őse
TWinControl Az "ablakozott" komponensek őse Fontosabb jellemzői: TabStop: Boolean TabOrder: Fontosabb metódusai: Update (frissíti, újrarajzolja) SetFocus (fókuszba helyezi)
50
Standard komponensek Fontosabb eseményei: TWinControl
OnEnter, OnExit (be- és kilépéskor) OnKeyDown, OnKeyUp, OnKeyPress
51
Standard komponensek Szerepük: adat megjelenítése és bekérése
TEdit, TMemo Szerepük: adat megjelenítése és bekérése TEdit: egy sorban TMemo: több sorban Fontosabb jellemzők: Text: String TMemo - nál: Lines: TStrings A megjelenített szöveg soronkénti feldolgozása MaxLength: Integer AutoSelect: Boolean
52
Standard komponensek Fontosabb metódusai: TEdit, TMemo SelText: String
SelStart, SelLength PasswordChar: Char Fontosabb metódusai: SelectAll ClearSelection CutToClipboard, CopyToClipboard, PasteFromClipboard
53
Standard komponensek Fontosabb eseményei: TEdit, TMemo
OnEnter : belépéskor OnChange : ha a Text változik OnExit : kilépéskor
54
Standard komponensek TButton , TBitBtn Szerepük: kattintásra betáplált tevékenység elvégzése Fontosabb jellemzők: Caption: String Cancel: Boolean (Esc - re meghívódik) Default: Boolean (Enter- re meghívódik) ModalResult: mrOk, mrCancel, ... modális párbeszédablak kilépési oka
55
Standard komponensek Fontos eseményük: TButton , TBitBtn
TBitBtn - nál: - Glyph: TBitmap, NumGlyphs: Kind: bkCustom, bkRetry, bkOk, ... Fontos eseményük: OnClick
56
Standard komponensek TCheckBox Jelölőnégyzet Igaz/ Hamis, Igen/ Nem, ... állapotok jelölésére Fontosabb jellemzők: Checked: Boolean AllowGrayed: Boolean (szürkítés engedélyezése) State: cbChecked, cbUnChecked, cbGrayed
57
Standard komponensek TRadioGroup 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 sorban) ItemIndex: Integer (= 0 első opció, =1 második opció,...) Fontos eseménye: OnClick
58
Standard komponensek TListBox
Listadoboz; nem szerkeszthető; egy vagy több sora kiválasztható Fontos jellemzői: Items: TString (sorai) ItemIndex: Integer (a kiválasztott sor indexe (0 első sor,...)) MultiSelect: Boolean (többszörös kiválasztás engedélyezése) SelCount: Integer (a kiválasztott sorok száma)
59
Standard komponensek Fontos metódusa: TListBox
Selected[i]: Boolean (True ha az i. indexű sor ki van választva) Sorted: Boolean Fontos metódusa: ItemAtPos : visszaadja a megadott x,y koordinátákban levő sorának indexét (egér kattintásakor használjuk)
60
Standard komponensek TComboBox
Kombinált lista; közvetlenül szerkeszthető, vagy kiválasztható egy elem a lebomló listából Fontos jellemzői: Text: String (szövege) Items: TStrings (a lista elemei) ItemIndex: Integer (a kiválasztott listaelem indexe) DropDownCount: Integer (hány soros legyen a lebomló lista)
61
Standard komponensek Fontosabb eseménye: TComboBox Sorted: Boolean
SelText, SetStart, SelLength mint a TEdit - nél. Style: csDropDown, csDropDownList, csOwnerDrawFixed, ... Fontosabb eseménye: OnDropDown (a lista lenyitásakor)
62
Standard komponensek Menük használata TMainMenu Típusai:
Főmenü Gyorsmenü (egér jobb gombra) TMainMenu Főmenü komponens Vizuálisan szerkesztjük a menüszerkesztővel Fontosabb jellemzője: Items[x: Integer]: TMenuItem
63
Standard komponensek Menüpont szürkítése: Menük használata
Pl. A FileMenu OnClick eseményére felülbíráljuk az almenüpontok állapotát (pl. OpenMenu. Enabled := False) Menük használata
64
Standard komponensek TMenuItem
Tartalmazza egy menüpont tulajdonságait, metódusait és eseményeit Jellemzői: Caption: String - Forróbillentyű: &File File - Menüszeparátor: Caption = - Items[X: Integer]: TMenuItem (az almenüpontok) Count: Integer (almenüpontok száma)
65
Standard komponensek Metódusai: Eseménye: TMenuItem
Checked: Boolean ("pipa") Enabled: Boolean (=Falseszürke) GroupIndex: Integer (ld. később menük összefésülése) Metódusai: Add, Insert, Remove (futás közbeni menüátalakítás) Eseménye: OnClick
66
Standard komponensek TPopupMenu
Egyéb komponensek PopupMenu tulajdonságához kötjük Vizuális tervezéssel jön létre Fontosabb jellemzői: Items[x: Integer] : TMenuItem AutoPopup: Boolean (ha True, akkor automatikusan az egér jobb gombjának lenyomására megjelenik) Hasznos metódus: Popup (megjeleníti a gyorsmenüt)
67
Standard komponensek Hasznos eseménye: TPopupMenu OnPopup:
megjelenéskor hívódik meg felhasználhatjuk a menüpontok engedélyezésére ill. letiltására
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.