Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
A C++ programozás Windows környezetben
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 23./0. A C++ programozás Windows környezetben Vizuális komponensek, erőforrások használata Vizuális komponensek közös jellemzői Vizuális komponensek közös metódusai Vizuális komponensek közös eseménykezelő függvényei A form-ok fontosabb jellemzői Csak programból használható jellemzők Form-ok főbb specifikus metódusai Főbb események egy form életében
2
Vizuális komponensek közös jellemzői
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 23./1. Vizuális komponensek közös jellemzői A vizuális komponenseket használjuk programunk felhasználói felületének megépítésére. A komponenseket a form-komponenseken, ritkábban azon belül egymáson helyezzük el. A komponensek jellemzőit (properties) beállíthatjuk tervezési időben az Object Inspector-ral, vagy futásidőben a programban értéket adva nekik. Ez utóbbi módszer alkalmazható olyan adattagokra is, amelyek nem jelennek meg az objektum Properties lapján az Object Inspector-ban. Az objektumon akciókat vitelezhetünk ki, lekérdezéseket végezhetünk el az állapotára vonatkozóan a metódusainak (method) programbeli hívásával. A komponens által megválaszolható események (events) közül kiválaszthat-juk és válaszadó programkóddal megtölthetjük azok függvényeit, amelyek a programunk szempontjából fontosak.
3
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 23./2. A név jellemző (Name property) Minden komponens egyed saját nevet kap, mely az osztály nevéből és egy sorszámból tevődik össze. Ez a név beépül az objektum eseménykezelő függvényeinek nevébe is. Az automatikusan generált név megváltoztatható, ekkor a C++ Builder átvezeti a változást minden olyan helyen, ahol ő hozott vele létre kódrészletet. A mi általunk írt kódrészben nem aktua-lizál, ezért az átnevezést közvetlenül a komponensegyed létrehozása után célszerű megtenni az Object Inspector-ban. Szigorúan tilos a Builder által generált programkódot közvetlenül, a kódszerkesztőben módosítani!! (Bár lehet.) Ugyanígy tilos program-ból módosítani a nevet. Az új nevet a felirat (Caption) mező is felveszi (ha létezik az adott komponensnél), ami nem mindig kívánatos, mert pl. ékezetes feliratot szeretnénk. Írjuk át tetszés szerint. Tulajdonos (Owner) és Tartalmazó (Parent) jellemzők A komponens Tulajdonosa az az objektum, amely felelős a memóriából való törlé-séért amikor a komponensre már nincs szükség. A Tartalmazó (Parent) az az ob-jektum, amely tartalmazza a komponenst. Egy ablakbeli panelon levő gomb Owner-e az ablak, Parent-je a panel.
4
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 23./3. A bal(Left) és teteje (Top) jellemzők A vizuális komponensek képernyőn, illetve hordozó form-on, vagy panelon belüli helyét adják meg azáltal, hogy meghatározzák a komponensegyed bal felső sarkának koordinátáit. Értékük negatív is lehet és programból is megadható. Szélesség (Width) és magasság (Height) jellemzők A komponensegyed méretét adják meg. Egyes komponen- seknél (pl. form) minimum és maximum korlát létezhet. A magyarázat (Hint) jellemző A magyarázat akkor jelenik meg az objektumegyedhez, ha az egérkurzorral kissé elidőzünk rajta. A magyarázat rövid leírást ad az objektumról. Két része a rövid és a hosszú magyarázat, megadásakor egy | karakterrel választandó el. A rövid magyarázat a sárga buboréksúgóban jelenik meg, az opcionális hosszú az ablak alján megadható státuszsorban (status bar). Csak akkor látszanak, ha a ShowHint jellemző true az alkalmazásnál is.
5
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 23./4. A kurzor (Cursor) jellemző Ezzel állíthatjuk át az alapértelmezett kurzoralakot. A kurzor az ily módon megadott alakot ölti akkor, amikor a komponens felett van. Ritkán használjuk. Gyakrabban módosítjuk a kurzort futásidőben programból. Engedélyezett (Enabled) jellemző A komponensek lehetnek ideiglenesen érzéketlenek. Ezt az Enabled = false érték jelzi. Az ilyen komponens nem kerülhet fókuszba, a tab gombbal való lépegetés átlépi. Rendszerint ezt az állapotát vizuális megkülönböztetés is jelzi, pl. szürkébb megjelenés. A legtöbb komponens ezt az állapotát csak futásidőben veheti fel, tervezéskor nem. A beállítást is gyakran programból végezzük. Karakterkészlet (Font) jellemző A komponens feliratának, szövegének formátuma tág határok között állítható, a Font sajátosság kijelölése után jobb oldalt megjelenő gombra kattintással megnyitott, jól ismert karakterformátum beállító ablakban.
6
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 23./5. A szín (Color) jellemző A komponens háttérszínének , illetve a karakter színének a beállítására szolgál. Fontos kiemelni, hogy tetszőleges szín megadását lehetővé tévő színpaletta mellett az előre beállított színsémák is nagy jelentőséggel bírnak programunk egysé- ges kinézete és a színek felhasználó általi testreszabhatósága miatt. Pl. clWhite fehér szín mellett clMenu is választható, amely az operációs rendszerben a menük számára megadott színt jelenti. Célszerű ezek használata. (Lásd előző oldalon.) Súgószöveg tartalom (HelpContext) jellemző Az objektumhoz társított súgószövegek indexének megadása. Azonosítószám (Tag) jellemző Tetszőleges egészszám kapcsolható a komponenshez, mely felhasználható a programban a beazonosítására. Láthatóság (Visible) jellemzó Ha értéke true, a komponens látszik, ha false, akkor nem látható és nem is engedélyezett. Programból állítjuk leginkább.
7
Vizuális komponensek közös metódusai
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 23./6. Vizuális komponensek közös metódusai Elrejtés ( Hide() ) metódus Elrejti a komponenst, a Visible jellemző false értékre állításával. Érvénytelenítés ( Invalidate() ) metódus A komponens nem sürgős újrarajzolásának kérése, melyet a Windows teljesít, amint ráér. Frissítés ( Refresh() ) metódus Azonnali törlés és újrarajzolás kérése. Újrarajzolás ( Repaint() ) metódus A komponens hátterének előzetes törlése nélküli azonnali újrarajzoltatása. A fókusz beállítása ( SetFocus() ) metódus A komponensre állítja a fókuszt és aktívvá teszi.
8
Vizuális komponensek közös eseménykezelő függvényei
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 23./7. Vizuális komponensek közös eseménykezelő függvényei Megváltozás ( OnChange() ) eseménykezelő A komponens megváltozása kiváltja az eseménykezelő meghívását. Kattintás ( OnClick() ) eseménykezelő Egérkattintás a komponensen kiváltja az eseménykezelő meghívását. Duplakattintás ( OnDblClick() ) eseménykezelő Dupla egérkattintás a komponensen kiváltja a függvény meghívását. Belépés ( OnEnter() ) eseménykezelő Meghívódik, amikor a komponens megkapja a fókuszt. Kilépés ( OnExit() ) eseménykezelő Meghívódik, amikor a komponens elveszti a fókuszt. Újrarajzolás ( OnPaint() ) eseménykezelő Meghívódik a komponens újrarajzolásakor hogy további speciális rajzolást végezhessünk még rajta.
9
Vizuális komponensek közös eseménykezelő függvényei, folytatás
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 23./8. Vizuális komponensek közös eseménykezelő függvényei, folytatás Billentyű lent ( OnKeyDown() ) eseménykezelő Az eseménykezelő meghívódik, ha egy bármilyen billentyűt lenyomtunk, miközben a komponens fókuszban volt. Billentyűmegnyomás ( OnKeyPress() ) eseménykezelő Meghívódik, ha alfanumerikus billentyűt, Enter, Tab, Backspace vagy Esc billen- tyűt nyomtak le. Billentyű felengedés ( OnKeyUp() ) eseménykezelő Meghívódik egy billentyű felengedésekor. Egér lent ( OnMouseDown() ) eseménykezelő Meghívódik, amikor a komponens feletti kurzornál az egér gombját lenyomják. Visszaadja a koordinátákat, a lenyomott egérgombot és váltóbillentyűket. Egérmozgás a komponens felett ( OnMouseMove() ) eseménykezelő Meghívódik, amikor a komponens felett mozog az egérkurzor. Egérbillentyű felengedése ( OnMouseUp() ) eseménykezelő Meghívódik, ha a komponens felett felengedjük az egér lenyomott billentyűjét.
10
A form-ok fontosabb jellemzői
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 23./9. A form-ok fontosabb jellemzői Aktív vezérlő (ActiveControl) A form-on található vezérlők egyike választható ki, ez lesz aktív, ez lesz fókuszban, amikor a form aktívvá válik. Automatikus görgethetőség (AutoScroll), Vízszintes és Függőleges görgetőléc jellemzők Ezek beállítása szabályozza a form tartalmának görgethe-tőségét, amennyiben a form kis mérete miatt nem látszik rajta minden vezérlő.(HorzScrollBar, VertScrollBar) Kereten lévő ikonok (BorderIcons) jellemző Ezzel adjuk meg a jobb felső sarokban megjelenítendő ikonokat. Keretstílus (BorderStyle) jellemző A keret stílusa alapvetően méretezhető (bsSizeable) és nem méretezhető lehet (pl. bsDialog , bsNone). Form stílus (FormStyle) jellemző Általában fsNormal. Mindig felül maradó: fsStayOnTop. MDI form-hoz: fsMDIForm és dokumentumához:fsMDIChild.
11
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 23./10. Használható terület magassága (Client Height) és szélessége (ClientWidth) jellemzők A kereteken belüli és fejléc alatti terület méretei, kihatnak a Width és Height jellemzőkre. Fejlécikon (Icon) jellemző Itt adható meg a fejlécen megjelenő ikon, amely a form minimalizálásánál is megjelenik. Nem mindig látszik, pl. ha a FormStyle fsDialog értékű. Pozíció (Position) jellemző A form első megjelenésekori pozíciója és mérete. Windows dönti el: poDefault. Tervezéskori helyzetben: poDesigned. Minden megjelenés középen; a képernyőén: poDesktopCen-ter, a főablakén: poMainFormCenter, a tulajdonos (owner) form közepén: poOwnerFormCenter, a kétmonitoros üzem-mód kiválasztott képernyőjének közepén: poScreenCenter. Ablakállapot (WindowState) jellemző Maximális, normál, vagy ikonná kicsinyített méret.
12
Csak programból használható jellemzők
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 23./11. Csak programból használható jellemzők Ezek a jellemzők nem jelennek meg az Objektum Vizsgálóban, tervezési időben nem állíthatók be. Modalis ablak bezárási módja (ModalResult) jellemző Modális ablakban a kilépéshez, bezáráshoz meg- nyomott gombnál beállítandó a ModalResult értéke, melyet az ablak bezáródása után a vezérlést visszakapó ablak a ShowModal() függvény visszatérési értékeként megkap. Pl. ha az Igen gomb lenyomásával zártuk be a párbeszédablakot, akkor a ModalResult értéke mrYes lesz, ha a Nem gombbal, akkor mrNo, ha a Mégse gombbal, akkor mrCancel. Ha a ModalResult értéke egy gombra nem mrNone, akkor a gomb lenyomása automatikusan bezárja az ablakát azáltal, hogy annak ModalResult jellemzőjének is értéket ad, nem kell OnClick() eseményt is kezelni. További, csak programból használható jellemzők is léteznek.
13
Form-ok főbb specifikus metódusai
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 23./12. Form-ok főbb specifikus metódusai Előrehozás ( BringToFront() ) metódus A form ezen metódusának meghívása a form-ot az alkalmazásban szereplő összes form elé hozza. Bezárás ( Close() ) metódus Hívása bezárja az ablakot. (A zárás az OnCloseQuery() eseménykezelővel megakadályozható.) Aktivizálás ( SetFocus() ) metódus A form-ot aktivizálja és előre hozza. Az ActiveControl jellemzővel kijelölt komponens is aktivizálódik a formon (Megkapja a fókuszt.). Megjelenítés ( Show() és ShowModal() ) metódusok Egy form-ot először a memóriában kell létrehozni. Ez történhet egy TForm típusú egyedváltozó definiálásával. Ekkor még a form nem látható, de már létezik. Megjelenítéséhez a Show(), vagy a ShowModal() metódust kell meghívni. A modalis formot be kell zárni, mielőtt más részét használnánk az alkalmazásnak, a nem modális ablakból átkattinthatunk más ablakba a bezárása nélkül is.
14
Főbb események egy form életében
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 23./13. Főbb események egy form életében A konstruktor lefut. A form létrejön a memóriában OnCreate() A form létrehozás eseményének eseménykezelője Show() metódushívás a form megjelenítésére OnShow() A form megjelenítés eseményének eseménykezelője OnActivate() A form aktívvá válása eseménynek az eseménykezelője OnPaint() Az ablaktartalom kirajzolása esemény kezelője … OnResize() Az ablak mérete változott esemény kezelője Repaint() metódushívás a form újrarajzolására a méretváltozás miatt OnPaint() Az ablaktartalom kirajzolása esemény kezelője … OnMouseDown(); OnMouseMove(); OnMouseUp() egéresemények kezelői … Close() metódushívás a form bezárására, hívja a CloseQuery() metódust OnCloseQuery() benne eldönthetjük, hogy valóban bezárható-e az ablak OnClose() ebben az eseménykezelőben megadhatjuk a zárás módját OnDestroy() Az ablak a memóriából törlődik esemény kezelője ha van destruktor, lefut.
15
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 23./14. Megjegyzések: A konstruktorba, vagy az OnCreate() eseménykezelőbe, de csak az egyikbe írjuk bele a form létrehozásakor elvégzendő inicializálásokat, kezdő beállításokat, ha szükségesek. Ugyanígy az OnDestroy() eseménykezelő és a destruktor közül csak az egyikben adjuk meg a form memóriabeli megszüntetésekor elvégzendő esetleges tevékenységeket. Az OnResize() eseménykezelő olyankor hívódik meg, amikor az ablak mérete megváltozott. Ebben az eseménykezelőben újrapozicionálhatjuk az ablak elemeit, újrarajzolhatjuk a benne levő ábrát, újból kiírathatjuk a szöveget a szükséges hosszúságban, stb. Ezek a tevékenységek mind igénylik az ablak újrarajzolását a Repaint() metódus meghívásával. Az eseménykezelők közül a Windows által meghívottak alapértelmezett tartalommal futnak le, ha nem módosítjuk a tartalmukat. A felhasználói tevékenységekre reagáló (pl. egérkezelő) eseménykezelő függvényeket szükség szerint mi építjük be a programba és adjuk meg a tartalmukat.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.