A C++ programozás Windows környezetben

Slides:



Advertisements
Hasonló előadás
Számvitel S ZÁMVITEL. Számvitel Ormos Mihály, Budapesti Műszaki és Gazdaságtudományi Egyetem, Hol tartunk... Hiányzik egy jól strukturált rendszer.
Advertisements

A kártyanyomtatás fortélyai Csákvári Krisztián Kártya és címke gyártás
TÖMÖRÍTÉS. Fogalma A tömörítés egy olyan eljárás, amelynek segítségével egy fájlból egy kisebb fájl állítható elő. A tömörítési arány függ a fájl típusától,
ISKOLAKÉSZÜLTSÉG – AZ ADAPTÍV VISELKEDÉS FEJLETTSÉGE dr. Torda Ágnes gyógypedagógus, klinikai gyermek-szakpszichológus Vizsgálóeljárás az iskolába lépéshez.
LA C++ programozás Windows környezetben Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 28./0. lOpenPictureDialog és SavePictureDialog.
A KÖNYVTÁRELLÁTÁSI SZOLGÁLTATÓ RENDSZER HATÉKONY MŰKÖDTETÉSE ÉS A SZOLGÁLTATÁS NÉPSZERŰSÍTÉSE VI. KSZR MŰHELYNAP – ZALAEGERSZEG NOVEMBER 11. A KSZR.
Informatikai rendszerek általános jellemzői 1.Hierarchikus felépítés Rendszer → alrendszer->... → egyedi komponens 2.Az elemi komponensek halmaza absztrakciófüggő.
A vállalatok marketingtevékenysége és a Magyar Marketing Szövetség megítélése Kutatási eredmények az MMSZ részére (2008. július)
BEST-INVEST Független Biztosításközvetítő Kft.. Összes biztosítási díjbevétel 2004 (600 Mrd Ft)
TEROTECHNOLÓGIA Az állóeszközök újratermelési folyamata.
Nemzeti Audiovizuális Archívum
CAF URBOS 3/9 TÍPUSÚ VILLAMOS ÜTKÖZÉS VIZSGÁLATA
Hiteltörlesztési konstrukciók
Fájlkezelés.
Dobrik-Lupták Sára szeptember 19.
Munkalapok védelme az Excelben
3. tétel.
Valószínűségi kísérletek
Térkép készítése adataiból
WE PROVIDE SOLUTIONS.
Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat
Becslés gyakorlat november 3.
A C++ programozás Windows környezetben
A színkezelés alapjai a GIMP programban
Komplex természettudomány 9.évfolyam
Montázs készítése.
Scilab programozás alapjai
A közigazgatással foglalkozó tudományok
Programozás III. Gyakorlás.
PHP - függvények.
A KINOVEA mozgáselemző rendszer használata
Ez az én művem Novák Tamás Felkészítő tanár: Takács Viktória
Kockázat és megbízhatóság
Microsoft songsmith Zenekészító program.
Kvantitatív módszerek
Operációkutatás I. 7. előadás
Animációk.
Munka és Energia Műszaki fizika alapjai Dr. Giczi Ferenc
Gazdaságstatisztika Korreláció- és regressziószámítás II.
Bevezetés Az ivóvizek minősége törvényileg szabályozott
Adatbázis-kezelés (PL/SQL)
MOZGÓ SZÍNPAD Molino Kft
FÜGGVÉNYEK Legyen adott A és B két nem üres (szám)halmaz. Az A halmaz minden eleméhez rendeljük hozzá a B halmaz pontosan egy elemét. Ezt az egyértelmű.
Ez a címdia 1. szövegdoboza
VB ADATTÍPUSOK.
Szerkezetek Dinamikája
Közigazgatási alapvizsga a Probono rendszerben
A C++ programozás Windows környezetben
Nyíregyházi Egyetem, Műszaki és Agrártudományi Intézet Jármű- és mezőgazdasági Géptani tanszék A ventilátoros permetezőgép üzemeltetési jellemzőinek.
Informatikai gyakorlatok 11. évfolyam
B M Java Programozás 4. Gy: Java GUI IT A N Tipper, MVC kalkulátor
Online jegyzőkönyv kitöltési segédlet
A C++ programozás Windows környezetben Képek, rajzok alkalmazása
A csoportok tanulása, mint a szervezeti tanulás alapja
A Microsoft SharePoint testreszabása Online webhely
Bináris kereső fák Definíció: A bináris kereső fa egy bináris fa,
Vasbeton falvasalás megadása és ellenőrzése EC2 szerint
További rendező és kereső algoritmusok
I. HELYZETFELMÉRÉSI SZINT FOLYAMATA 3. FEJLESZTÉSI FÁZIS 10. előadás
Foglalkoztatási és Szociális Hivatal
Binomiális fák elmélete
Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat
SQL jogosultság-kezelés
Mintaillesztés Knuth-Morris-Pratt (KMP) algoritmus
Áramlástan mérés beszámoló előadás
Informatika Oktató: Katona Péter.
Háttértárak Merevlemezek.
Algoritmusok.
Hagyományos megjelenítés
A tehetséggondozás kihívásai
Előadás másolata:

A C++ programozás Windows környezetben Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 26./0. A C++ programozás Windows környezetben Pozícióbeállító és kijelző vezérlők a programban Görgetőléc (ScrollBar) vezérlő Csúszka (TrackBar) vezérlő Folyamatállás kijelző (ProgressBar) vezérlő Léptető (UpDown) vezérlő Mintaprogram pozícióbeállító és kijelző vezérlőkkel

Görgetőléc (ScrollBar) vezérlő Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 26./1. Görgetőléc (ScrollBar) vezérlő A görgetőléc szolgál az ablakban teljesen el nem férő ablaktartalmak begörgetésére az ablakba. Részei a tolóka, a léc és a léptetőgombok. A görgetőléc egérrel és billentyűzettel egyaránt kezelhető, ilyen eseménykeze- lő függvényei vannak. A Kind jellemző értékétől függően függőleges és vízszintes helyzetű lehet. A programban a görgetendő tartalom mozgásintervallumát a csúszka mozgástartományára kell leképezni a Min és a Max jellemzők értékének megadásával. A görgető gombokat használva a tolóka a SmallChange értéknek megfelelő lépésekkel mozog. Ha lapozunk, azaz a gombok és a tolóka között kattintunk, vagy a PgUp,PgDn gombokkal görgetünk, akkor a LargeChange lépésnagy-sággal mozog. A tolóka aktuális pozíciójának értéke a Position jellemzővel olvasható, írható. A tolóka helyének megváltozásakor OnChange esemény történik, melynek eseménykezelőjét a komponensen duplán kattintva hozhatjuk létre. Ez az esemény mind egérrel, mind billentyűzettel, mind programból megváltoztatott csúszkahelyzetnél bekövetkezik. A függvényben elvégezhetjük a mozgatandó tartalom helyének megváltoztatását.

Csúszka (TrackBar) vezérlő Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 26./2. Természetesen a tolóka mozgatásával bevitt folytonosan változó értéket más célra is használhatjuk, pl. egy tárgy forgatására, mozgások lejátszására. A görgetőléc egy belső timer-rel, szaggatóval működik. A Min, Max és a Position jellemzők egy lépésben is megadhatók a SetParams metódus hívásával. A csúszka pozíciójára, illetve a görgetési tevékenység mikéntjére vonatkozó információkat kaphatunk az OnScroll eseménykezelő függvény használatával. Csúszka (TrackBar) vezérlő A lineáris műszerskálára emlékeztető vezérlő egy inter- vallumon belül változó érték nyomonkövetésére, vagy megváltoztatására használható. Legfontosabb jellemző- je a görgetőléchez hasonlóan a mutató alakú tolóka helyzete, melyet a Position jellemzővel írhatunk, olvas- hatunk. Az Orientation vízszintes és függőleges lehet. A skálázás tartományát adhatjuk meg a Min és Max jellemzőkkel, melyeken belül megadhatunk egy vizuálisan kiemelt résztarto-mányt a SelStart és a SelEnd jellemzőkkel. A TikMarks jellemzővel a skálázás oldalát adhatjuk meg, a TickStyle jellemzővel pedig a stílusát. A Frequency jellemzővel a skála sűrűsége állítható.

Folyamatállás kijelző (ProgressBar) vezérlő Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 26./3. Folyamatállás kijelző (ProgressBar) vezérlő A folyamatállás kijelző elsősorban időben zajló folyamatok állásának, előrehaladásának kijelzésére alkalmas. Leg- fontosabb jellemzője a Position, mely a Min és Max vég- értékek közötti értéket vehet fel, leolvasható és módosít- ható. A Step jellemzőnek megfelelő értékű újabb szeg- mens a StepIt( ) metódus hatására jelenik meg. Tetsző- leges lépéssel növelhetjük a Position tartalmát a StepBy metódussal. A Smooth jellemzővel folytonos csík, vagy szegmenses forma között választhatunk. Léptető (UpDown) vezérlő A léptető egész változó értékének az Increment jellemző- ben megadott értékkel való növelésére, csökkentésére al- kalmas. Egysoros szövegszerkesztővel egybeépítve (lásd Associate jellemző) a szám beírható, de a gombokkal léptethető is. Az értéket a Position jellemző tárolja, mely programból is írható, olvasható. Értéke a Min és Max jellemzők értéke közé eshet. Legfontosabb eseménye az OnClick, mely megadja, hogy melyik gombot nyomták le. Irányát az Orientation jellemző határozza meg.

Mintaprogram pozícióbeállító és kijelző vezérlőkkel Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 26./4. Mintaprogram pozícióbeállító és kijelző vezérlőkkel Feladat: készítsük el az alábbi ablakkal jellemezhető C++ Builder programot!

egy frissen megnyitott üres alkalmazást. Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 26./5. A programban a Korong a görgetőléccel, a csúszka vezérlővel, vagy a léptetővel gurítható jobbra, balra. A Csúszka a fehér Pötty közepének mindenkori magasságát jelzi, a görgetőléc tolókája a kerék helyével együtt mozog, miközben a folyamatállás kijelző a program indításától eltelt időt méri. Megoldás: 1. Hozzunk létre egy új könyvtárat és mentsünk le bele Csuszka.prj néven egy frissen megnyitott üres alkalmazást. 2. Helyezzük el a szükséges vezérlőket a form-on, méretezzük és pozicio- náljuk a megadott ábrának megfelelően. A form-ra egy Timer komponens is felkerül, melynek feladata 5 másodpercenként meghívni az OnTimer eseménykezelő függvényét és abban léptetni a folyamatállás kijelzőt. A Korong és a Potty TShape komponensek, melyeknek Shape jellemzője stEllipse értékű. A Korong Brush (ecset) jellemzőjének Color tulajdon- ságát clRed-re állítottuk. A fekete alap egy Shape = stRectangle értékű TShape komponens.

A form a komponensek felrakása után: Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 26./6. A form a komponensek felrakása után:

3. A TrackBar Orientation jellemzőjét trVertical értékre kell átírni. Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 26./7. 3. A TrackBar Orientation jellemzőjét trVertical értékre kell átírni. 4. Szükségünk lesz néhány globális változóra, definiáljuk ezeket a TForm1 *Form1 sor után: int pozicio,Dx,Dy,dx,dy,R,r; double szog; A pozicio a mozgás paraméterváltozója, 0-314 intervallumban vehet fel értékeket. Értéke megfelel a Korong által megtett útnak, mivel a Korong R sugara éppen 100. 5. A számításokhoz szükségünk van a sin, cos, acos függvényekre, melyek a math.h headerfájlban vannak deklarálva. Szúrjuk be ezt a Unit1.h include sor alá: #include "math.h” 6. A form BorderStyle értéke bsDialog. Edit1 ReadOnly jellemzője true. 7. A többi felirat (Caption) értelemszerű megadása mellett a form-nál is írjuk át : Görgetőléc, csúszka és folyamatállás kijelző demonstrációs program-ra.

__fastcall TForm1::TForm1(TComponent* Owner) Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 26./8. 8. Az ablakbeli főcím font értékét válasszuk 10-es félkövérre. 9. Nevezzünk át néhány komponenst (az Alap-ot raktuk fel utoljára): Shape1 --> ShapeKorong Shape2 --> ShapePotty Shape3 --> ShapeAlap. 10. Bár ezek nagy részét az Object Inspector-ban is beállíthattuk volna, most a form konstruktorában adjuk meg az inicializáló értékeket: __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Dx= 113; Dy= 120; //eltolás az ablak sarkához képest dx= 201; dy= 208; //piros induló közép-r; Dx+R-r; Dy+R-r R= 100; r= 12; //sugarak UpDown1->Position= 157; UpDown1->Min= 0; UpDown1->Max= 314; // folytatódik Dx, Dy dx,dy

ScrollBar1->SetParams(157,1,314); Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 26./9. ScrollBar1->SetParams(157,1,314); ScrollBar1->SmallChange = 1; // finom lépésköz ScrollBar1->LargeChange = 10; // nagy lépésköz TrackBar1->Position=100; TrackBar1->Min= 0; TrackBar1->Max= 200; // csak kijelzéshez TrackBar1->SelStart= r; TrackBar1->SelEnd= 2*R-r; TrackBar1->PageSize= 4; TrackBar1->Frequency= 4; ProgressBar1->Min= 0; ProgressBar1->Max= 600; // 5 perc (600/10 * 5mp) ProgressBar1->Width= 600; // 2 képpont a rajzon == 1 mp ProgressBar1->Step= 10; // egy lépés ==10 képpont== 5 mp ProgressBar1->Position= 0; Timer1->Interval=5000; //5 mp Timer1->Enabled= true; // a programmal együtt indul }

11. A legfontosabb függvény a görgetőléc pozícióváltozására reagáló Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 26./10. 11. A legfontosabb függvény a görgetőléc pozícióváltozására reagáló OnChange() eseménykezelő: void __fastcall TForm1::ScrollBar1Change(TObject *Sender) { //Görgetőléc pozíció kiolvasása: pozicio= ScrollBar1->Position; Edit1->Text= pozicio; // kiíratás, operator=() működik //Korong pozicionálása: ShapeKorong->Left= Dx+pozicio; //csak csúszik valójában... //Pötty pozicionálása: a Korong négyzetén belül szog= (double)pozicio/R; ShapePotty->Left= dx+pozicio-(int)(R-r)*sin(szog); ShapePotty->Top= dy+(int)(R-r)*cos(szog); TrackBar1->Position= R+(int)(R-r)*cos(szog); // csúszka } A Korong forgását a Potty mozgása érzékelteti. Itt állítjuk a csúszkát is a fehér Potty közepének magasságára.

eseménykezelő függvényét: Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 26./11. 12. A Timer 5 másodpercenként “felüti a fejét” és meghívja az OnTimer() eseménykezelő függvényét: void __fastcall TForm1::Timer1Timer(TObject *Sender) { ProgressBar1->StepIt(); // lépteti a folyamatállás kijelzőt } 13. A Léptető valamelyik gombján kattintva meghívódik a Léptető OnClick() eseménykezelő függvénye, mely a gomb függvényében inkrementálja, vagy dekrementálja a mozgásparaméter pozicio változó értékét: void __fastcall TForm1::UpDown1Click(TObject *Sender, TUDBtnType Button) if (Button == btNext) pozicio++; else pozicio--; ScrollBar1->Position= pozicio; // kiváltja az összes tevékenységet! // mert OnChange eseményt jelent a görgetőlécnél!

fel-le egérrel és ennek hatására kell minden másnak működnie: Korong, Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 26./12. 14. Végül azt az esetet programozzuk, amikor a csúszka vezérlőt mozgatjuk fel-le egérrel és ennek hatására kell minden másnak működnie: Korong, Potty, görgetőléc, Edit1 számkijelző. A csúszka (TrackBar) magassági helyzetét átszámítjuk pozício-értékre és ezzel aktivizáljuk a mindentudó OnChange függvényét a görgetőlécnek (ScrollBar1). void __fastcall TForm1::TrackBar1Change(TObject *Sender) {int sv; sv= TrackBar1->Position; if (sv<12) sv=12; if (sv>188) sv=188; szog= acos((double)(sv-R)/(R-r)); pozicio= (int)(R*szog); ScrollBar1->Position=pozicio; // kiváltja az összes tevékenységet } 15. A program gyönyörűen működik, bár még tökéletesíthető. Pl. nem állítottuk le a Timer-t, rábíztuk az alkalmazásra, az Edit1 ablakba nem lehet beírni és ily módon pozicionálni a Korongot, billentyűzettel nem vizsgáltuk a programot,stb.