Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010
4. ELŐADÁS Standard komponensek bemutatása 2
Komponensek bemutatása Programozási technikák - Pál László A komponensek hatékony felhasználásához hoz az alábbi kérdk rdésekre kell ismernünk nk a választ: v Milyen tulajdonságokkal (properties) rendelkezik a vezérlő? Milyen metódusok (methods) segítik a vezérlő használatát? Mely eseményekkel (events) avatkozhatunk be a vezérlőelem működésébe? 3
Komponens paletta (Tool Palette) A komponensek több csoportba sorolhatóak: Standard Additional Win32 System Dialogs DataAcces DataControls DBE 4
Standard komponens paletta Vezérlőgombok TButton, TRadioButton, TCheckBox Szöveg megjelenítők TLabel, TEdit, TMemo Listás vezérlők TListBox, TComboBox Menü vezérlők TMainMenu, TPopUpMenu Egyéb vezérlők TRadioGroup, TPanel Programozási technikák - Pál László 5
A TButton (Nyomógomb) komponens - Egyike a leggyakrabban használt komponenseknek Leírás, szerep: kattintható gomb, kattintásra induló tevékenység elvégzésére használjuk Fontosabb jellemzők: Caption a gomb felirata Width, Height a gomb méretei Left, Top a gomb pozíciója Enabled engedélyezés Default Ha értéke True, az Enter leütésre az OnClick eseménye fog lefutni Megjegyzés: a gomb háttérszínét és feliratának színét nem lehet megváltoztatni 6
A TButton (Nyomógomb) komponens - Fontosabb események: OnClick - Az egér bal gombjával való kattintáskor következik be. Megjegyzés: Ez az egyik leggyakrabban használt esemény. Ez az esemény nem csak egérkattintáskor, hanem Enter, ill. Space billentyűk megnyomásakor is bekövetkezik, ha a komponens aktív (például egy aktív nyomógomb). 7
Események Sender paramétere Minden eseménykezelő rendelkezik a Sender paraméterrel A Sender azt az objektumot jelenti, amelyen az esemény bekövetkezett Típusa: TObject Segítségével ugyanazt az eljárást rendelhetjük több objektum hasonló eseményéhez 8
Események Sender paramétere - Példa Az as operátor: objektumok típuskonverziójára használható Az is operátor: objektumok típusellenőrzésére szolgál 9
A TLabel (Címke) komponens - Leírás, szerep: statikus szöveg (nem szerkeszthető) megjelenítésére alkalmas, többnyire más objektumok kiegészítéseként használjuk Fontosabb jellemzők: Caption: a szövegmező szövegét tartalmazza Layout: megadja, hogy a szöveg a komponensen belül hol helyezkedjen el függőleges irányban Alignment: a szöveg vízszintes irányú elrendezése adható meg WordWrap: több sorra tördeli a beírt szöveget, ha értéke True. 10
A TEdit (Szerkesztő mező) komponens - Szintén gyakran használt komponens Leírás, szerep: egysoros szöveg megjelenítésére vagy bekérésére alkalmas komponens Fontosabb jellemzők: Text: a szövegmező szövegét tartalmazza (típusa: String) MaxLength: a maximálisan megengedett karakterek száma ReadOnly: csak olvasható a tartalma, alapértelmezett értéke False PasswordChar: megadhatunk egy karaktert. Minden leütött karakter után a megadott karakter fog megjelenni. A valós szöveg kiolvasható a Text jellemzőből SelLength,SelStart, SelText: A Text-ben kijelölt szövegblokk kezelésével kapcsolatos, futásidőben elérhető jellemzők 11
A TEdit (Szerkesztő mező) komponens - Fontosabb metódusok: SelectAll: kijelöli a teljes szöveget ClearSelection: törli a kijelölt szöveget Clear: törli a teljes szöveget CutToClipboard, CopyToClipboard, PasteFromClipboard: a Cut/Copy/Paste (kivágás/másolás/beillesztés) műveletek elvégzése a kijelölt szövegrésszel SetFocus: segítségével fókuszba állíthatjuk a komponenst 12
A TEdit (Szerkesztő mező) komponens - Fontosabb események: OnClick: rákattintáskor következik be OnChange: minden olyan esetben létre jön, amikor a Text property tartalma valamilyen módon megváltozik. 13
A TEdit (Szerkesztő mező) komponens - Amennyiben numerikus érték bevitelére alkalmazzuk, a konverzióra felhasználhatjuk a Delphi konverziós függvényeit ( StrToInt, StrToFloat, stb.) vagy a Turbo Pascal Val eljárását. Numerikus adat direkt bevitelét teszi lehetővé a későbbiekben megismert TSpinEdit típusú komponens 14
A TEdit (Szerkesztő mező) komponens - Konverziós függvények: StrToInt(s:String) karakterláncot egész számmá alakít FloatToStr(e:Extended) egész számot szöveggé alakít StrToFloat(s:String) karakterláncot valós számmá alakít FloatToStr(e:Extended) valós számot szöveggé alakít Példa: var s:string; r:real; s:= 12.34 ; r:=strtofloat(s); \\ r=12.34 15
A TMemo (Többsoros szövegmező) komponens - Leírás, szerep: többsoros szöveg szerkesztésére alkalmas komponens, hasonló a TEdit-hez Fontosabb jellemzők: Text: a szövegmező szövegét tartalmazza (típusa: String) Lines: TStrings típusú tulajdonság, amely az objektum sorait tárolja (Lines[0] jelenti az első sort, Lines[1] a másodikat, stb.) Alignment: a sorok igazításának beállítására használható tulajdonság. Segítségével a sorokat igazíthatjuk balra, jobbra vagy középre. ScrollBars: megadhatjuk, hogy a komponensen a vízszintes, a függőleges vagy mindkettő görgetősáv jelenjen-e meg, vagy ne legyen egyik görgetősáv se a komponensen. 16
A TMemo (Többsoros szövegmező) komponens - Fontosabb jellemzők: WordWrap: igaz értéke az automatikus sortördelést jelenti WantTabs, WantEnter értékük igazra állításával lehetőség adódik a Tab és Enter billentyűk használatára Metódusok, események: Nagyjából egyeznek a TEdit komponens metódusaival és eseményeivel Példa: 17
A TStrings, TStringList osztály Osztályok karakterlánc tömbök kezelésére Egy ilyen tömbbe lehet beszúrni, törölni elemeket valamint rendezni a tömböt Fontosabb tulajdonságok: Count: az elemek száma Capacity: a tömb mérete Strings: a tömb elemeit lehet lekérdezni vag megadni Sorted: a tömb rendezettségét lehet kezelni 18
A TStrings, TStringList osztály Fontosabb metódusok: Add: hozzáad egy elemet a lista végére és visszaadja annak indexét Append: hozzáad egy elemet a lista végére Insert: beszúr egy elemet Delete: töröl egy elemet Clear: töröl minden elemet Sort: rendezi a tömböt LoadFromFile: tartalmát egy szövegfájlból veszi SaveToFile: tartalma kimenthető egy szövegfájlba 19
A TCheckBox (Jelölőnégyzet) komponens- Leírás, szerep: két vagy három állapot kiválasztására használhatjuk: Igen Nem, Igaz Hamis, Férfi Nő, A harmadik ún. szürke pipás változat az egyéb nem tudom nem egyértelmű mindegy nincs adat jellegű válaszok lekezelésére alkalmas A jelölőnégyzet lehetséges állapotai: 20
A TCheckBox (Jelölőnégyzet) komponens- Fontosabb jellemzők: Caption: a jelölőnégyzet mellett megjelenő szöveg Checked: kétállapotú használat esetén a státusz értéke. Ha értéke True, akkor a jelölőnégyzet ki van jelölve AllowGrayed: engedélyeztethető a szürkített pipás állapot State: a háromféle állapot beállítására vagy lekérdezésére szolgál 21
A TCheckBox (Jelölőnégyzet) komponens- Események: OnClick: akkor következik be, ha változik a komponens állapota Megjegyzések: Az állapotváltozást jelző OnClick eseménye, sokféle módon kiváltható. A billentyűvel történő állapotváltoztatás történhet a Space esetleg a komponens választókarakterének lenyomásával. Ugyancsak státusz-váltást jelent a bal egérgombbal (balegérrel) történő rákattintás is, ha nem egéreseményként (OnMouseDown) kívánjuk lekezelni! Ha a kódban megváltoztatjuk a Checked illetve a State pillanatnyi értékét, ugyancsak kiváltjuk az OnClick eseményt Választókarakter: pld. Caption= &Kijelolve, aktiválás: Alt+K 22
A TCheckBox (Jelölőnégyzet) komponens- Példa: 23
A TRadioButton (Választógomb) komponens- Leírás, szerep: az általános cél, hogy egyszerűen választhassunk egymást kizáró lehetőségek közül. A választás eredménye "igaz" vagy "hamis" érték attól függően, hogy a rádiógomb meg van e jelölve, vagy sem. Kifejezetten csoportelem. A csoportba szervezett rádiógombok egymással kölcsönösen kizáró kapcsolatban vannak ( a csoportelemek közül csak egy lehet kijelölt, kiválasztott). Használatukra több lehetőség van: Egyenként az űrlap felületére helyezzük: automatikusan csoportot alkotnak Választógomb-csoport keretén belől 24
A TRadioButton (Választógomb) komponens- Fontosabb jellemzők: Caption: a rádiógomb felirata Checked: ezzel a jellemzővel kérdezhetjük le állíthatjuk be a rádiógomb állapotát, a gomb státuszát Alignment: megadja, hogy a Caption a rádiógomb melyik oldalára kerüljön 25
A TRadioButton (Választógomb) komponens- Események: OnClick: akkor következik be, ha a rádiógomb kijelölt lesz, azaz a Checked tulajdonsága False-ról True-ra változik Megjegyzések: Az átkapcsolás az esetek többségében balegérrel történik, ritkábban a választókarakterek felhasználásával Nem váltja ki a rádiógomb OnClick eseményét az Enter illetve a Space billentyűk leütése sem 26
A TRadioButton (Választógomb) komponens- Példa: A rádiógombok OnClick eseményei 27
A TRadioGroup (Választógomb-csoport) komponens- Leírás, szerep: e komponens egy keret segítségével vizuálisan is elkülöníti a hozzá tartozó rádiógombokat. Mikor ezt a speciális csoport-vezérlőt használjuk, olyan, mintha egy listában tallóznánk és kiválasztanánk a megfelelő elemet. Ebben az esetben nem kell minden egyes rádiógombhoz külön eseménykezelőt írni, csak a rádiógomb-csoporthoz. 28
A TRadioGroup (Választógomb-csoport) komponens- Fontosabb jellemzők: Caption: a rádiógomb-csoport felirata Color: a csoport háttérszíne Columns: megadható, hogy hány oszlopban helyezkedjenek el a csoporton belül a rádiógombok. Az alapértelmezés egy oszlop. ItemIndex: megadja, a csoportban kiválasztott rádiógomb sorszámát. A legelső sorszáma: 0. Items: az egyes rádiógombok címkéit tárolja egy TString típusú objektumban 29
A TRadioGroup (Választógomb-csoport) komponens- Fontosabb események: OnClick: a csoportban való kattintáskor következik be Példa: 30