Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015
8. ELŐADÁS Üzenetablakok, dialógusablakok MDI alkalmazások 2
Üzenetablakok Windows-os alkalmazásokban nagyon gyakran használt technika, hogy probléma esetén a program a felhasználót értesíti egy megfelelő üzenetablak segítségével Az üzenetablakok különböző típusaival figyelmeztetések, hibajelzések jeleníthetők meg, esetleg a kényesebb műveletek végrehajtására vonatkozó engedélyező vagy tiltó kérdéseket tehetünk fel. Az üzenetablakban található különböző nyomógombok választási lehetőséget kínálnak a felhasználó számára Valamennyi üzenetablak modális megjelenítésű 3
Üzenetablakok Funkcionálisan három csoportba sorolhatók: Nyugtázó ablakok (MsgBox, MessageBox) - ablakhívó eljárások, hatásukra szimpla üzenetablak jelenik meg a képernyőn, amelyben nincs választási lehetőség. A nyugtázó ablakok az üzenet szövege alatt egy OK nyomógombot tartalmaznak. Választó ablakok (MsgBox, MessageBox) - ablak-függvények, az-az van visszatérési értékük. Általában több gombot tartalmaznak és visszaadják a lenyomott gomb ModalResult értékét. Adatkérő ablakok (InputBox) függvények, amelyek segítségével egy ablakot jeleníthetünk meg, amely szerkesztőmezőt és gombokat tartalmazhat. 4
Üzenetablakok - MsgBox Objektumorientált programozás - Pál László Függvény, amely egy dialógus ablakot jelenít meg, különböző gombokkal, majd vár addig, míg valamelyik gombbal bezárjuk. Egy egész számot ad vissza a kattintott gombnak megfelelően. Szintaxis: MsgBox(üzenet [, gombok] [, cím]) vagy egészváltozó= MsgBox(üzenet [, gombok] [, cím]) Üzenet: az üzenet szövege Gombok: a megjelenített gombok (nem kötelező) Cím: az ablak címe (nem kötelező) 5
Üzenetablakok - MsgBox Objektumorientált programozás - Pál László Gombok paraméter: 5 csoport értékeiből állhat Csoportok: Gombok száma és típusa A gomb mellett megjelenő icon típusa Alapértelmezett gomb megadása A megjelenítés típusával kapcsolatos Speciális beállítások 6
Üzenetablakok - MsgBox Objektumorientált programozás - Pál László Gombok típusa: 7
Üzenetablakok - MsgBox Objektumorientált programozás - Pál László Ikonok típusa: 8
Üzenetablakok - MsgBox Objektumorientált programozás - Pál László Alapértelmezett gomb beállítása: 9
Üzenetablakok - MsgBox Objektumorientált programozás - Pál László A függvény által visszaadott értéknek megfelelően van egy konstans, amit használhatunk (lásd tábla): 10
Üzenetablakok MsgBox példák 11
Üzenetablakok MsgBox példák 12
Üzenetablakok - MessageBox Osztály, amely egy dialógus ablakot jelenít meg, különböző gombokkal, majd vár addig, míg valamelyik gombbal bezárjuk. Egy egész számot ad vissza a kattintott gombnak megfelelően. Hasonlón működik, mint az MsgBox függvény Szintaxis: [DialogResult = ] MessageBox.Show([window,] prompt [, caption] [, MessageBoxButtons] [, MessageBoxIcon] [, MessageBoxDefaultButton] [, MessageBoxOptions]) 13
Üzenetablakok - MessageBox A Show függvény által visszaadott lehetséges értékek: 14
Üzenetablakok MessageBox 15
Üzenetablakok MessageBox 16
Üzenetablakok - InputBox Objektumorientált programozás - Pál László Egysoros adatok beolvasására alkalmas függvény. A beolvasott szöveggel tér vissza. Szintaxisa: InputBox(üzenet[, cím] [, alapért.] [, xpos] [, ypos] [, helpfile, context]) A függvény paramétereinek jelentése: Üzenet: az üzenet szövege Cím: az ablak címe (nem kötelező) Xpos, ypos: az ablak pozíciója 17
Üzenetablakok - InputBox Objektumorientált programozás - Pál László Példa: 18
Dialógusablakok Egy összetett alkalmazásban általában szükség van különböző állományok megnyitására, elmentésére, nyomtató beállítására. A VB.NET lehetőséget ad ezeknek a műveleteknek az elvégzésére párbeszédablakok segítségével. A különböző dialógusablakok megjelenítésére használt komponensek a Dialogs nevű palettán találhatók és mindegyik a Windowsból jól ismert szabványos párbeszédablakot jelenít meg. 19
Dialógusablakok Több közös vonás is van a dialógusablakok között. Itt kiemelnénk, hogy kettő kivételével mindegyik modális ablak és valamennyi az ShowDialog utasítás segítségével hívódik meg. 20
OpenDialog és SaveDialog Állományok tallózására és kiválasztására valamint állományok lementési helyének és nevének megadására alkalmas ablakok. A két komponens tulajdonságai gyakorlatilag megegyeznek. Fontosabb tulajdonságok: DefaultExt: alapértelmezett állomány kiterjesztés, amely abban az esetben csatolódik az állomány nevéhez, ha a felhasználó azt nem adja meg FileName: a kiválasztott állomány teljes nevét tartalmazza MultiSelect: több állomány kijelöléséért felelős FileNames: a kiválasztott állományok teljes nevét tartalmazza Filter: az állományok szűrése oldható meg a segítségével (megadott maszk alapján, pl. *.txt, *.doc, stb) 21
OpenDialog és SaveDialog FilterIndex: az aktuális szűrő sorszáma InitialDirectory: kezdeti könyvtár CheckFileExists: figyelmeztet, ha a megadott fájl nem létezik OverwritePrompt: figyelmeztet, ha egy létező fájlt felül akarunk írni (SaveDialog) 22
OpenDialog és SaveDialog Legfontosabb metódus az ShowDialog, amellyel a dialógusablakot megjelentetjük. Visszaadja az Open (Save) gomb vagy a Cancel gomb értékét (DialogResult.OK vagy DialogResult.Cancel) Az OpenDialog párbeszédablak 23
FontDialog A szövegtulajdonságok beállítására alkalmas ablak, amellyel már az MsOffice csomag keretén belül találkozhattunk. Fontosabb tulajdonságok: Font: a kiválasztott tulajdonságok együttese Color: a karakterszint lehet beállítani ShowColor: beállítható, hogy a dialógusablak megjelenítse-e a szín beállítást ShowApply: az Apply gomb megjelenítését szabályozza MinFontSize, MaxFontSize: a betűméret nagyságát korlátozhatjuk segítségükkel 24
FontDialog Példa: az alábbi példában a TextBox szövegmező szövegének a jellemzői felveszik a Font-ablakban kiválasztott jellemzőket 25
ColorDialog A színkiválasztó ablak megjelenítését teszi lehetővé. Legfontosabb tulajdonsága a Color, ahol a egy konkrét szint lehet kiválasztani. 26
MDI alkalmazások Objektumorientált programozás - Pál László MDI (Multiple Document Interface) alkalmazás: egyetlen alkalmazás felügyelete alatt, egyszerre több ablakban jeleníthetünk meg adatokat, grafikát, és azokkal párhuzamosan dolgozunk (pld. Word, Excel) MDI alkalmazás részei: Egy főablak (keretablak, MDIContainer): van címsora, menüje, eszközsora, állapotsora Tetszőleges számú gyerekablak (MDIChild): van címsoruk, rendszermenüjük. Nincs saját menüjük. A főablak beállítást az űrlap IsMdiContainer, tulajdonságánál tehetjük meg 27
MDI alkalmazások Szabályok: Objektumorientált programozás - Pál László A keretablak az applikáció főablaka; automatikus létrehozású A gyerekablak nem automatikus, futáskor hozunk létre egy vagy több példányt Mindig csak egy gyerekablak lehet aktív A gyerekablakok a keretablak munkaterületén belül helyezkednek el A keretablak bezárása maga után vonja a gyerekablakok bezárását is 28
MDI alkalmazások Objektumorientált programozás - Pál László Űrlap tulajdonságok MDI keretablak esetén: MdiParent: beállítja az űrlap szölőjét MdiChildren: a gyerekablakok listája ActiveMdiChild: az aktuális (fokuszban lévő) gyerekablakot lehet lekérdezni Metódusok: LayoutMdi: a gyerekablakok elhelyezését szabályozza (Tile, Cascade) 29
MDI alkalmazások - Példa Beállítjuk a keretablak stílusát (IsMdiContainer = true) 30
MDI alkalmazások - Példa 31