Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015
10. ELŐADÁS Grafika VB.NET-ben 2
Grafikus objektumok Tervezési időben létrehozható grafikus elemek: PictureBox (kép) RectangleShape (téglalap) OvalShape (ovális) LineShape (vonal) Futási időben létrehozható grafikus elemek: Graphics objektum 3
Tervezési időben - PictureBox Helye: Common Controls Leírás, szerep: kép megjelenítésére használjuk Tulajdonságok: Image: a megjelenítendő képet ebben a tulajdonságban adhatjuk meg. A képfájl típusa lehet JPG, BMP, ICO, EMF és WMF. ErrorImage: kép, ami akkor jelenik, meg ha az adott kép nem tudott betöltődni InitialImage: kép, ami addig jelenik meg, amíg az eredeti kép betöltődik ImageLocation: a betöltendő kép elérési helye 4
Tervezési időben - PictureBox Tulajdonságok: SizeMode: kezeli a kép elhelyezési módját. Lehetséges értékei: Normal, StrechImage, AutoSize, CenterImage, Zoom Beállítás tervezési időben: 5
Tervezési időben - PictureBox Példa: Normal StrechImage AutoSize CenterImage Zoom 6
Tervezési időben - PictureBox Metódusok: Példák: Load: a megadott képet tölti be PictureBox1.Load( c:\mypicture.jpg ) PictureBox1.Load( http://www.contoso.com/path/images/image.jpg ) PictureBox1.Load(./images/image.jpg ) 7
Tervezési időben - RectangleShape Helye: Visual Basic PowerPacks Leírás, szerep: ha csak egyszerűbb geometriai alakzatok megjelenítésére van szükség, akkor az Image komponens helyett használhatjuk ezt a komponenst Tulajdonságok: BackColor: héttérszín BackStyle: az alakzat áttetszőségét szabályozza (Opaque, Transparent) BorderColor: az alakzat szegélyszíne BorderStyle: az alakzat szegélyének stílusa (folytonos, szaggatott, stb) BorderWidth: a szegély vastagsága 8
Tervezési időben - RectangleShape Tulajdonságok: CornerRadius: a sarkak lekerekítését szabályozza FillStyle: az alakzat kitöltését szabályozza FillColor: az alakzat kitöltési színét szabályozza FillGradientStyle: a színátmenetet szabályozza FillGradientColor: a kitöltési szín milyen színbe megy át Példák: 9
Grafika futási időben - Graphics Futás közben, VB.NET-ben azoknak a komponenseknek a felületére rajzolhatunk, amelyek rendelkeznek Graphics objektummal ( rajzvászon ). Ilyen komponens például az Image, Bitmap, Printer, Form, stb. A Graphics tulajdonképpen egy objektum, amely tartalmazza a rajzoláshoz szükséges tulajdonságokat, metódusokat. Mivel ez a jellemző csak publikus (public) és nem publikált (published) tervezési időben nem érhető el csak a program futása közben. A komponensek rajzvásznának az osztálya Graphics, amely tartalmazza a rajzoláshoz szükséges jellemzőket és metódusokat 10
Graphics objektum létrehozása Rajzolás előtt mindig létre kell hozni egy Graphics objektumot Létrehozása a CreateGraphics() metódussal történik Példák: Graphics objektum űrlap esetén: Dim mygraphics As Graphics = me.creategraphics Graphics objektum PictureBox esetén: Dim mygraphics As Graphics = PictureBox1.CreateGraphics Graphics objektum TextBox esetén: Dim mygraphics As Graphics = TextBox1.CreateGraphics 11
A rajzoló toll (Pen) létrehozása A rajzoláshoz szükséges a rajzoló toll létrehozása és tulajdonságainak a beállítása Létrehozása: Dim toll As Pen Példa: toll = New Pen(szín, vastagság) Dim mypen As Pen mypen = New Pen(Drawing.Color.Blue, 5) 12
A rajzoló toll (Pen) tulajdonságai Color: a toll színe Width: a toll vastagsága PenType: a rajzolandó vonalak stílusa (solid, filled, stb.) StartCap: a vonal kezdőpontjának stílusa EndCap: a vonal végsőpontjának stílusa Példa: 13
A Graphics objektum metódusai Vonalak-alakzatok rajzolása: DrawLine: vonal rajzolása. Több konstruktora van: DrawLine(Pen, Point, Point) DrawLine(Pen, Single, Single, Single, Single) Példa: 14
A Graphics objektum metódusai Vonalak-alakzatok rajzolása: DrawRectangle: téglalap rajzolása. Konstruktorok: DrawRectangle(Pen, Rectangle) DrawRectangle(Pen, Single, Single, Single, Single) Példa: 15
A Graphics objektum metódusai Vonalak-alakzatok rajzolása: DrawEllipse: téglalap rajzolása. Konstruktorok: DrawEllipse(Pen, Rectangle) DrawEllipse(Pen, Single, Single, Single, Single) Példa: 16
A Graphics objektum metódusai Vonalak-alakzatok rajzolása: DrawPolygon: sokszög rajzolása. Konstruktor: DrawPolygon(Pen, Point()) Példa: 17
A Graphics objektum metódusai Vonalak-alakzatok rajzolása: DrawString: karakterlánc kiírása. Konstruktor: DrawString(String, Font, Brush, Single, Single) Példa:e) 18
A Graphics objektum metódusai Alakzatok kitöltése: FillRectangle: téglalap kitöltése adott ecset (Brush) segítségével. Konstruktor: FillRectangle(Brush, Single, Single, Single, Single) Példa:e) 19
A Graphics objektum metódusai Alakzatok kitöltése: FillClosedCurve: egy spline görbe belsejét tölti ki. Konstruktor: FillClosedCurve(Brush, Point()) Példa:e) 20
A Graphics objektum metódusai Grafikus felület törlése törlése: Clear: törli a teljes grafikus felületet és kitölti a megadott színnel. Clear(szín) Példa:e) 21
Kérdések Mi a szerepe a DialogResult tulajdonságnak (az űrlap és a gomb esetén)? 22
Kérdések Mi a szerepe a kivétekezelésnek? 23
Kérdések Mire használjuk a finally kúlcsszót? 24