Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

A C++ programozás Windows környezetben szöveges vezérlők a programban

Hasonló előadás


Az előadások a következő témára: "A C++ programozás Windows környezetben szöveges vezérlők a programban"— Előadás másolata:

1 A C++ programozás Windows környezetben szöveges vezérlők a programban
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./0. A C++ programozás Windows környezetben szöveges vezérlők a programban Címke (Label) vezérlő Egysoros szövegszerkesztő (Edit) vezérlő Többsoros szövegszerkesztő (Memo) vezérlő Lista (ListBox) vezérlő Kombinált lista (ComboBox) vezérlő Mintaprogram szöveges vezérlőkkel

2 Egysoros szövegszerkesztő (Edit) vezérlő
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./1. Címke (Label) vezérlő A címke (Label) vezérlő egysoros szövegek kijelzésére alkalmas. A fókusz nem állítható rá. A tartalmát a Caption jellemző tartalmazza. A betűket a Font jellem- ző értékeinek megadásával formázhatjuk. Amennyiben a Transparent tulajdonság true, a szöveg téglalapalakú háttere a hordozó felülettel lesz azonos. Az Alignment jellemzővel a téglalapon belül igazíthatjuk. Egysoros szövegszerkesztő (Edit) vezérlő Az egysoros szövegszerkesztő szövegek kijelzésére és beadására, módosítására egyaránt használható. A szö- veget a Text jellemző hordozza. Ha a ReadOnly jellemző true, akkor a szöveg csak olvasható ,illetve programból írható. A MaxLength jellemző 0 értéke tetszőleges, meg- adott értéke korlátozott beadható hosszt jelent.

3 Többsoros szövegszerkesztő (Memo) vezérlő
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./2. Többsoros szövegszerkesztő (Memo) vezérlő A memo vezérlő nagyméretű, akár több tíz kByte- os szöveg megjelenítésére, szerkesztésére alkal- mas. A szöveg beadható és olvasható a Text jel- lemzőn keresztül egybefüggően, vagy a Lines jel- lemzőn keresztül sorok sokaságaként. A WantTabs és a WantReturns jellemzők true értéke mellett a tabulátor a szövegben hatásos, nem hozza le a fókuszt róla, illetve az Enter sortörésre beadható a szövegbe. A szöveg automatikusan tördelhető a WordWrap jellemző állításával. A Módosulásról a Modified tulajdonság lekérdezésével értesülhetünk. ReadOnly = true érték mellett a szöveg csak olvas- ható. Programszerkesztéskor a szöveg felvitele a Lines jellemző sorában megjelenő gombbal előhív- ható String List Editor-ban történ- het.

4 Lista (ListBox) vezérlő
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./3. Lista (ListBox) vezérlő A lista vezérlő a tárolt szöveget egysoros bejegyzések formájában tárolja a TStrings típusú Items adattagnak a tételeket tartalmazó Names vektorában. A TStrings osztály metódusai Items->Metódus(); alakban használhatók a bejegyzések kezelésére. Ilyen metódusok az Add(”Bejegyzés”); mellyel új bejegyzést adhatunk a lista végéhez, az Insert(index, ”Bejegyzés”); az index által mutatott helyre szúrja be a bejegyzést, a Delete(index); az index által azonosított bejegy- zést törli, az IndexOf(”Bejegyzés”); metódussal a Bejegy- zés indexét tudhatjuk meg, ill. azt, hogy nem szerepel a listában. A TStrings osztály jellemzőivel, a Count jellemzővel a listaelemek számát tudhatjuk meg, az ItemIndex a kiválasztott bejegyzés indexét adja, a Strings[index ] jellemzővel pedig az index által azonosított stringre hivatkozhatunk.

5 Kombinált lista (ComboBox) vezérlő
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./4. A lista vezérlő MultiSelect jellemzőjének true értéke mellett egyszerre több bejegyzés is ki- választható, ha pedig az ExtendedSelect jel- lemző is true, a Shift és a Ctrl billentyűk is használhatók a többszörös kijelöléshez. Arról, hogy mely bejegyzések vannak kivá- lasztva, a Selected[ ] tömb informál, a kiválasztott bejegyzésekkel azonos indexű elemei true értékűek. A Sorted jellemző true értéke esetén a bejegyzések ABC szerint rendezettek. Kombinált lista (ComboBox) vezérlő A kombinált vezérlő egy egysoros szövegszerkesztő és egy lista egyesítése. Előnyösen használható olyan ese- tekben, amikor egy listáról kell kiválasztással értéket adni egy szövegváltozónak, vagy olyan esetben, amikor ezen felül még új bejegyzés beadási lehetősége is követel- mény.

6 Style = csSimple esetén a lista ablaka mindig megjele-
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./5. A kombinált vezérlő a Style jellemző értékétől függően eltérő alakokat ölthet: Style = csSimple esetén a lista ablaka mindig megjele- nik, a Height jellemző által engedélyezett hosszban. Style = csDropDown esetén a listaablakot a szövegszerkesztő sorában lévő gombbal le kell nyitni, vagy a Show( ) metódus hívá- Sával programból nyithatjuk le. Style = csDropDownList esetén a szöveg- input csak a listáról való választással adható be.

7 Megjegyzések a szöveges vezérlőkhöz:
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./6. A ComboBox tulajdonságai az egysoros szövegszerkesztő és a lista vezérlő megismert tulajdonságaival egyeznek, értelemszerű eltérésekkel. Így pl. nem lehet többszörös kijelölést végezni. Megjegyzések a szöveges vezérlőkhöz: A szöveges vezérlők a bemutatottakon túl sok, ritkábban használt jellemzővel , metódussal és eseménykezelővel rendelkeznek, lásd a program Help-jét. Az ismertetetteken túl léteznek további, részben eltérő tulajdonságú szöveges vezérlők is. Ilyenek: StaticText: Label -hez hasonló, de speciális célra szolgál. MaskEdit: Edit-hez hasonló, de a beírható szöveg ellenőrizhető, maszkolható és a kiírás formázható. RichEdit: Memo-hoz hasonló, de különféle karakterkészlet betűit keverhetjük és bekezdésformázási lehetőségeket is nyújt, de az ezeket a lehetőségeket kihasználó felhasználói felületet nekünk kell programozni.

8 Mintaprogram szöveges vezérlőkkel
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./7. Mintaprogram szöveges vezérlőkkel Készítsünk a Label, Edit, Memo, ListBox és ComboBox szöveges vezérlőket alkalmazó programot. A program egy gépipari vállalat Központi raktárában és Szereldei raktárában található alkatrészek nyilvántartására szolgál. A Központi raktárba új alkatrészeket bevételezhetünk, onnan egy, vagy több kijelölt alkatrészt átszállíthatunk a Szereldei raktárba, ahonnan felhasz- nálásra szintén egy, vagy több alkatrészt kivételez- hetünk. Az alkatrészek mozgását a későbbi visszakereshető- ség érdekében naplózza a rendszer. A raktárak alkat- részkészletét megjelenít- hetjük a bekerülés sorrend- jében, vagy rendezetten. A program ablaka a követ- kező felépítésű legyen:

9 létrehozott üres C++ Builder programunkat Raktar.prj projektnévvel.
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./8. Megoldás: 1. Hozzunk létre egy Raktár nevű könyvtárat, amibe mentsük le a frissen létrehozott üres C++ Builder programunkat Raktar.prj projektnévvel. 2. Helyezzünk el a form-on három csoportbafoglaló panelt (GroupBox). Ezek szerepe a rajtuk elhelyezendő elemek vizuális egységbe foglalása és az egység nevének megjelenítése. 3. Helyezzük el a panelokon az egy-egy ListBox komponenst a raktárállomány- bejegyzések tárolására és megjelenítésére! 4. Helyezzük el a bal GroupBox panelon alulra az Edit komponenst! 5. Helyezzük el a három nyomógombot a hozzáadás, szállítás és felhasználás műveletek elvégzésére! 6. Helyezzük el a ComboBox komponenst a megjelenítés módjának kiválasztására! 7. Helyezzük el a Memo komponenst a naplózott események megjelenítésére! 8. Végül helyezzünk el három Label komponenst a Raktárkészlet nyilvántartás, Megjelenítési mód: és az Új alkatrész neve: szövegek kijelzésére. A kijelölt komponenst a Ctrl nyomvatartása mellett a nyíl billentyűkkel finoman pozicionálhatjuk. Pl. a Megjelenítési mód: szöveget egy vonalba állíthatjuk az Edit ablakban lévő szöveggel.

10 Az ablak a felhelyezett és méretre igazított komponensekkel:
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./9. Az ablak a felhelyezett és méretre igazított komponensekkel: 9. Adjunk értéket a felirat (Caption) jellemzőnek a Form1, Label1, Label2, Label3, GroupBox1, GroupBox2, Groupbox3, Button1, Button2 és Button3 komponensek esetében.

11 10. Nevezzük át a következő komponensek Name jellemzőjét:
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./10. 10. Nevezzük át a következő komponensek Name jellemzőjét: Label2 -> LabelMod Label3 -> LabelUj GroupBox1 -> GroupBoxKozpont GroupBox2 -> GroupBoxSzerelde GroupBox3 -> GroupBoxNaplo ListBox > ListBoxKozpont ListBox > ListBoxSzerelde Memo1 -> MemoNaplo ComboBox1 -> ComboBoxMod Edit1 -> EditUj Button1 -> ButtonHozzaad Button2 -> ButtonSzallitas Button3 -> ButtonFelhasznalas értékekre! 11. Állítsuk a form keret stílusát (BorderStyle) párbeszédablak értékre (bsDialog) ! 12. Változtassuk meg a Label1 felirat betűformáját (Font) félkövér, 10 méretre és igazítsuk középre egérrel.

12 13. ComboBoxMod Text jellemzőjének értékét írjuk át Normál-ra!
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./11. 13. ComboBoxMod Text jellemzőjének értékét írjuk át Normál-ra! 14. EditUj egysoros szövegszerkesztő Text jellemzőjének értékét töröljük ki. 15. A ListBoxKozpont és a ListBoxSzerelde listavezérlőknél engedélyezzük a több bejegyzés kiválasztását, legyen a MultiSelect és az ExtendedSelect jellemzők értéke egyaránt true! 16. Töröljük a MemoNaplo többsoros szövegszerkesztőből a nevét, ehhez kattintsunk duplán a Lines jellemző sorá- ban lévő gombon és a megjelenő String List Editor-ban töröljük a szöveget! 17. Mivel ez a MemoNaplo szövegszerkesztő most csak a naplózott adatok megjelenítését fogja szolgálni, a szerkesztési lehetőséget tiltsuk le a ReadOnly jellemző true értékre állításával! 18. Éppenséggel a MemoNaplo szöveges vezérlő tartalma a billentyűzettel is görgethető, de egérrel történő kezelésre gondolva kapcsoljuk be a függőle- ges görgetőlecet is a ScrollBar jellemző ssVertical értékre állításával! 19. Mivel az eseményeket egy szöveges tárolóban naplózni kívánjuk, melyben az eseményeket sorszámmal azonosítjuk, ezért definiáljunk egy kinullázott memoszamlalo nevű változót a unit1.cpp fájl elején a TForm1 *Form1; sor után: int memoszamlalo = 0;

13 20. Hozzuk létre a Hozzáad nyomógombon való kattintás eseménykezelő
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./12. 20. Hozzuk létre a Hozzáad nyomógombon való kattintás eseménykezelő függvényének vázát a gombon végzett dupla kattintással! Az eredmény: void __fastcall TForm1::ButtonHozzaadClick(TObject *Sender) { } 21. Írjuk bele a függvény blokkjába az EditUj egysoros szövegszerkesztő tartalmát a ListBoxKozpont listavezérlő végéhez hozzáfűző programkódot, valamint naplózzuk az eseményt a MemoNaplo többsoros kijelzőben! { AnsiString s; if (EditUj->Text.Length() > 0) // van valami beírva { ListBoxKozpont->Items->Add(EditUj->Text); // hozzáadás a listához //Naplózás: memoszamlalo++; s= memoszamlalo; // operator=( ) működik! s += ". Új tétel hozzáadása a Központi raktár állományához: "; s += EditUj->Text; MemoNaplo->Lines->Add(s); // a naplót most soronként kezeljük

14 void __fastcall TForm1::ButtonSzallitasClick(TObject *Sender)
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./13. 22. Hozzuk létre a Szállítás nyomógomb eseménykezelő függvényének vázát a gombon duplán kattintva, majd írjuk bele a kiválasztott tételek átmásolását elvégző és az egyes bejegyzések átszállítását naplózó programsorokat: void __fastcall TForm1::ButtonSzallitasClick(TObject *Sender) { AnsiString s; for (int i=0; i < ListBoxKozpont->Items->Count; i++) if ( ListBoxKozpont->Selected[ i ] ) { ListBoxSzerelde->Items->Add(ListBoxKozpont->Items->Strings[ i ] ); //Naplózás: memoszamlalo++; s= memoszamlalo; s+= ". Tétel átszállítása a Központi raktárból a Szerelde raktárába: "; s+= ListBoxKozpont->Items->Strings[ i ]; MemoNaplo->Lines->Add(s); } // Átszállított elem törlése a Központi raktárból. // Nem törölhettük fent, mert elrontaná az indexeket és elemszámot, // vagy nem a felsőt szállítaná át először... for (int i = ListBoxKozpont->Items->Count-1; i >= 0; i--) if (ListBoxKozpont->Selected[ i ]) ListBoxKozpont->Items->Delete( i );

15 23. Hozzuk létre a Felhasználás nyomógomb eseménykezelő függvényének
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./14. 23. Hozzuk létre a Felhasználás nyomógomb eseménykezelő függvényének vázát a gombon duplán kattintva, majd írjuk bele a kiválasztott tételek felhasználásra való kivételezését, azaz a listából való kitörlését és ezen esemény naplózását elvégző programkódot: void __fastcall TForm1::ButtonFelhasznalasClick(TObject *Sender) { AnsiString s; for ( int i = ListBoxSzerelde->Items->Count-1; i >= 0; i--) if ( ListBoxSzerelde->Selected[ i ] ) { //Naplózás: memoszamlalo++; s= memoszamlalo; s += ". Tétel felhasználása a Szerelde raktárából: "; s += ListBoxSzerelde->Items->Strings[ i ]; MemoNaplo->Lines->Add(s); //Törlés: ListBoxSzerelde->Items->Delete( i ); }

16 listát szeretnénk rendezett, vagy normál módban történő megjelenítésre
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./15. 24. A lenyitható listájú ComboBoxMod komponenssel a Központi és a Szereldei listát szeretnénk rendezett, vagy normál módban történő megjelenítésre beállítani. Ehhez a ComboBoxMod komponens Items jellemzőjét töltsük fel a lenyíló menüben megjeleníteni kívánt Normál és Rendezett szövegekkel: 25. Végül írjuk meg a ComboBoxMod lenyíló listán történő rendezési mód választáshoz az alkatrészlisták rendezett, vagy rendezetlen megjelenítését beállító Sorted jellemzőknek történő értékadások programkódját a ComboBoxMod komponens OnChange( ) eseménykezelő függvényében. Ez a függvény a kombinált lista egysoros szövegszerkesztőjének tartalmában bekövetkező módosuláskor hívódik meg. A vázát a kombinált listán való dupla kattintással hozhatjuk létre. A függvényt a beleírt programrészlettel a következő lapon láthatjuk.

17 A ComboBoxMode komponens OnChange() eseménykezelő függvénye:
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./16. A ComboBoxMode komponens OnChange() eseménykezelő függvénye: void __fastcall TForm1::ComboBoxModChange(TObject *Sender) { if ( ComboBoxMod->Text == "Normál” ) { ListBoxKozpont->Sorted= false; ListBoxSzerelde->Sorted= false; } else { ListBoxKozpont->Sorted= true; ListBoxSzerelde->Sorted= true; Természetesen a program még tovább finomítható, pl. az új bejegyzés felvétele történhetne az Enter billentyű lenyomására is. A program futás közbeni ablakára egy példát a következő oldal ad.

18 A raktárkészlet nyilvántartó program futás közben:
Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 25./17. A raktárkészlet nyilvántartó program futás közben:


Letölteni ppt "A C++ programozás Windows környezetben szöveges vezérlők a programban"

Hasonló előadás


Google Hirdetések