Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015
7. ELŐADÁS Több információ az alkalmazásban - Fülek az űrlapon - Több űrlapos alkalmazások 2
Több információ az alkalmazásban Ha alkalmazásunk már egy kicsit nagyobb, több információt kell benne megjelenítenünk. Ha az információ nem fér el egy űrlapon, akkor két lehetőségünk van: A logikailag összetartozó információkat egy űrlapon több oldalra helyezzük el. Mindig csak egy oldal látható, egy másikat a fülére való kattintással lehet megjeleníteni (TabControl komponens) Több űrlapos alkalmazást készítünk. A program indításakor megjelenik a főűrlap, innen lehet majd a többi ablakra eljutni. 3
A TabControl (lapvezérlő) komponens - Helye: Containers csoport Leírás, szerep: fülsor több lappal. Akkor használjuk, ha a különböző füleken található tartalom változik 4
A TabControl (lapvezérlő) komponens - A lapokat az objektum jobb-felső sarkában található fekete nyilacskára kattintva, majd az Add Tab linkre kattintva lehet. A lapok önálló objektumokként jönnek létre TabPage1, TabPage2, stb. névvel. A lapok kiválasztása a megfelelő fülre (ilyenkor csak a TabControl objektum választódik ki) majd belül, a lapra való kattintással történik. Feliratukat, kiválasztás után, a Text jellemzőben lehet beállítani. 5
A TabControl (lapvezérlő) komponens - Tulajdonságok: TabPages: a komponens egyes lapjait a TabPages tömb jellemzőn keresztül érhetjük el. Itt minden egyes elem egy TabPage típusú objektum, amely megfelel az egyes lapoknak. A számozás 0-tól kezdődik. 6
A TabControl (lapvezérlő) komponens - Tulajdonságok: TabCount: a lapok számát adja meg azaz a TabPages tömb elemeinek számát SelectedTab: lekérdezi vagy beállítja az aktuális kiválasztott fület. TabIndex: egy lap sorrendjét állítja be vagy kérdezi le SelectedIndex: lekérdezi vagy bealítja az aktuális kiválasztott fül sorszámát. Alignment: a fülsor igazítása (fent, lent, balra, jobbra) 7
A TabControl (lapvezérlő) komponens - Tulajdonságok: MultiLine: ha értéke True, a fülek több sorba fognak elhelyezkedni, ha egy sorban nem férnek. Különben automatikusan egy léptető komponens jelenik meg a fülsor jobboldali végén és a nyílirányú léptetésekkel válnak hozzáférhetővé a fülek 8
A TabControl (lapvezérlő) komponens - Metódusok: SelectTab: egy megadott lapot aktuális lappá tesz DeselectTab: egy megadott lap utáni lapot tesz aktuálissá Események: Selected: egy lap kiválasztásakor következik be Selecting: egy lap kiválasztása előtt következik be, így lehetővé teszi a lapváltást TabIndexChanged: a TabIndex tulajdonság megváltozásakor következik be 9
A TabControl (lapvezérlő) komponens - Példa: 10
Alkalmazások űrlapjai (Form) Szerepe: a felhasználói interfész megtervezését teszi lehetővé, minden más komponenst réhelyezünk Jellemzők: Text: az űrlap felirata AcceptButton: az itt megadott gomb Click eseménye fut le az Enter billentyű leütésére CancelButton: az itt megadott gomb Click eseménye fut le az Esc billentyű leütésére StartPosition: az űrlap pozíciója futás közben (Manual, CenterScreen, stb.) 11
Alkalmazások űrlapjai (Form) Jellemzők: Location: az űrlap pozíciója (alapért. érték: 0,0) ClientSize: az űrlap hasznos felületének a mérete 12
Alkalmazások űrlapjai - A TForm Jellemzők: WindowState: az űrlap futáskori megjelenítésének módja: minimalizálva - Minimized, maximalizálva - Maximized, amekkorára terveztük (alapértelmezett) Normal. DialogResult: egy űrlap bezárása után ezzel a jellemzővel kérdezhetjük le a bezárás okát, azaz, hogy az Ok, a Cancel vagy más gombbal zártuk-e be. E jellemző értéke az űrlap bezárását okozó gomb DialogResult jellemzőjéből származik. 13
Alkalmazások űrlapjai - A TForm Jellemzők: Modal: az űrlap megjelenítési (modális, nem modális) formáját lehet lekérdezni. Alapértelmezetten False, nem modális megjelenítés IsMdiContainer: beállítható, hogy az űrlap MDI (Multiple Document Interface) űrlapként viselkedjen. Alapértelmezetten nem MDI (False) IsMdiChild: beállítható, hogy az űrlap MDI gyerekűrlapként viselkedjen 14
Alkalmazások űrlapjai - A TForm Metódusok: Show: eljárás, amely megjeleníti az ablakot (nem modálisan) ShowDialog: függvény, amely megjeleníti modálisan az ablakot, majd vár amíg ezt bezárjuk Close: bezárja az űrlapot. Ha ez a fő űrlap volt, bezárja az alkalmazást is. CenterToScreen: az űrlapot a képernyő közepére igazítja 15
Alkalmazások űrlapjai - A TForm Események: Load: az űrlap létrehozásakor hívódik meg. Általában inicializálásra használjuk (Alapértelmezett esemény) Show: az űrlap megjelenítésekor következik be. FormClosed: az űrlap bezárásakor következik be. Itt bealítható a bezárás módja FormClosing: az űrlap bezárása előtt következik be. Ebben még megállítható a bezárás Click: kattintáskor következik be 16
Alkalmazások űrlapjai - A TForm Példa a FormClosing eseményre: 17
Az ablakok megjelenítési formái Az alkalmazásunkban az űrlapokat két féle módon jeleníthetjük meg: nem modálisan (Modeless) modálisan (Modal) 18
Nem modális (Modeless) űrlapok Az ilyen űrlapok előnye, hogy az alkalmazás többi ablakával is tudunk dolgozni anélkül, hogy a megjelenített űrlapot bezárnánk. A VB.NET keretrendszerben ilyen például az objektumfelügyelő ablak, a kódszerkesztő ablak. A nem modális űrlapok megjelenítéséhez az űrlap Show metódusát használjuk. Ez a metódus csupán megjeleníti és előtérbe helyezi az űrlapot, nincsen visszatérítési értéke. 19
Nem modális (Modeless) űrlapok Egy alkalmazásban alapértelmezetten egy űrlap található. Új űrlapot vagy a Project menü alatt vagy a Megoldás tallózóban a projekt fölött jobb klikkre megjelenő menüből lehet létrehozni 20
Nem modális (Modeless) űrlapok Példa: 21
Modális (Modal) űrlapok Legfontosabb tulajdonsága: megjelenésük idejére az alkalmazás többi ablaka nem elérhető. Ha egy űrlap modális, arról könnyedén meggyőződhetünk, úgy hogy az űrlap mellé kattintunk. Ezt egy rövid figyelmeztető sípszó fogja jelezni. Példa: ilyen típusú ablakok az üzenetablakok, speciális párbeszédablakok (fájl megnyitás, mentés) 22
Modális (Modal) űrlapok A modális űrlapok megjelenítéséhez az űrlap ShowDialog metódusát használjuk Ez egy függvény, amelynek visszatérési értéke az űrlapon lévő nyomógombok ModalResult tulajdonságától függ Ennek a technikának nagy előnye, hogy egyszerűbbé teheti a kódot, mivel a visszatérési érték egyértelműen azonosíthatja a gombot (ha a ModalResult tulajdonság megfelelően be van állítva). 23
Modális (Modal) űrlapok A Show és ShowDialog utasítások közti lényeges különbséget az alábbi ábrán szemléltetjük. A Show metódus megjeleníti az űrlapot és rögtön utána végrehajtja az U1 utasítást. A ShowDialog is megjeleníti az űrlapot, de utána vár ennek bezárásáig, így az U2 utasítás csak az ablak eltűnése után fog lefutni. 24
Modális (Modal) űrlapok Példa: a Form1 nevű űrlapon található gomb segítségével egy Form2 nevű űrlapot jelenítünk meg modálisan. 25
Modális (Modal) űrlapok Példa (folytatás): Ha feltételezzük, hogy a Form2 űrlapon található gomb DialogResult tulajdonsága a Ok-ra van állítva akkor erre a gombra kattintva a szülőűrlap ugyanilyen nevű paramétere automatikusan megkapja a gombnál beállított értéket és bezáródik. Ennek a technikának az az előnye, hogy erre a gombra nem kell Click eseményt írni. 26
Modális (Modal) űrlapok Példa: 27
Kérdések Mi a különbség a TextBox és ListBox között? 28