170 likes | 305 Views
Delphi programozás alapjai. Nagyváradi Anett anettn@morpheus.pte.hu http://morpheus.pte.hu/~anettn PTE PMMK MIT. 6. ELŐADÁS. Grafika, nyomtatás Delphiben. Grafikai elemek. Tervezési időben létrehozható elemek: TBitBtn (gomb) TSpeedButton (eszköztárgomb) TShape (alakzat) TImage (kép)
E N D
Delphi programozás alapjai Nagyváradi Anett anettn@morpheus.pte.hu http://morpheus.pte.hu/~anettn PTE PMMK MIT
6. ELŐADÁS Grafika, nyomtatás Delphiben
Grafikai elemek Tervezési időben létrehozható elemek: • TBitBtn (gomb) • TSpeedButton (eszköztárgomb) • TShape (alakzat) • TImage (kép) Futási időben létrehozható elemek: • TCanvas (vászon)
Tervezési időben TBitBtn (Additional) • nyomógomb, kattintással indított tevékenység elvégzésére • Jellemzői: • Caption - gombfelirat • Cancel - ha igaz, akkor a tevékenység az esc hatására is meghívódik • Default - ha igaz, akkor a tevékenység az enter hatására is meghívódik
Tervezési időben TSpeedButton (Additional) • Eszköztár gombok megjelenítésére • Általában panelen helyezkednek el • Főleg grafikát, szöveget tartalmaznak • Állapotai: „felengedett”, „beragadt” • Példányai csoportosíthatóak (kölcsönös kizárás) • Jellemzői: • Caption – gombfelirat • Glyph – megjelenített kép, képek (max 4 kép) • NumGpyphs – hány képből áll a beszúrt Glyph (ennyi részre osztja) • GroupIndex – csoportosításhoz, azonos GroupIndex • Down – ha true, gomb benyomott állapotban • AllowAllUp – egy csoportbeli gombok lehetnek-e mind felengedve
Tervezési időben TShape • Ellipszis, kör, téglalap, négyzet megjelenítésére • Jellemzői: • Shape – alakzat formája (stEllipse, stCircle, …) • Pen – a rajzoló toll tulajdonságait tartalmazza • Brush – kitöltés tulajdonságai
Tervezési időben TImage • BMP, WMF, ICO grafikák megjelenítésére • Jellemzői: • Picture – megjelenített grafika adatai (LoadFromFile, SaveToFile metódusokkal betölthető, menthető) • Stretch – ha igaz, akkor felveszi a komponens méretét (torzítás), ha hamis, akkor a bal felső sarokhoz igazodva jelenik meg a kép eredeti méretben Pl.: Image1.Picture.LoadFromFile (‘kepnev.bmp’);
Futási időben • Delphiben azoknak a komponenseknek a felületére rajzolhatunk, melyek rendelkeznek canvas jellemzővel • canvas =„rajzvászon” objektum, mely tartalmazza a rajzoláshoz szükséges tulajdonságokat, metódusokat • Csak futási időben elérhető jellemző – a rajzolást kódból kell megvalósítani
Futási időben – Canvas TCanvas • Komponensek rajzvásznának osztálya • Rajzolás metódusokkal történik • Jellemzők: • Pen – rajzoló tolla adatai • Color (cled,clWhite,… vagy 4 byteon: $00BlueGreenRed) • Style (psSolid, psDot, psDash,…) • Width –toll vastagság pixelben • Mode – rajzmód (pmCopy (háttér felülírása), pmXOR, …) • Brush – kitöltési adatok • Color – ecset színe • Style – ecset stílusa (bsSolid, bsHorizontal, …) • Bitmap – idomok kitöltése bitmintával
Futási időben – Canvas 2 • További jellemzők: • Font – betűk jellemzője a vászonon • Name – betűtípus neve (Arial, Thaoma, …) • Size – betűméret • Color – szín (clBlack, clRed, …) • Style – stílus (fsBold, fsItalic, fsUnderline, …) • ClipRect – rajzvászon határai (Left, Top, Right, Bottom) Pl.: bal felső sarok:(Canvas.ClipRect.Left, Canvas.ClipRect.Top)
Futási időben – Canvas 3 • Metódusai: • MoveTo(x,y:integer) – kurzor pozícionálása • LineTo(x,y:integer) – vonal húzása (x,y) pontba • Polyline (Pontok: Array of TPoint) – nyitott sokszög rajzolása a ponttömb pontjainak összekötésével • Fillrect(ARect:TRect) – téglalap(parm.) kitöltése • Rectangle(x1,y1,x2,y2:integer) – téglalap rajzolása • Ellipse(x1,y1,x2,y2:integer)– ellipszis rajzolása • Polygon(Pontok: Array of TPoint) – zárt sokszög • TextOut (x,y:integer,Text:String)- szöveg kiiratása adott pozícióból • Draw(x,y:integer,graphic:TGraphic) – garfika megjelenítése
Példa onPaint eseményre: procedure TForm1.FormPaint(Sender: TObject); begin with Form1.Canvas do begin MoveTo(10,10); LineTo(100,50); TextOut(150,150,’Helló!’); end; end;
Példa TBitmap osztály egy példányával: procedure TForm1.BitBtn1Click(Sender: TObject); var Bitmap: TBitmap; begin Bitmap := TBitmap.Create; Bitmap.LoadFromFile('cim3h.bmp'); Form1.Canvas.Brush.Bitmap := Bitmap; Form1.Canvas.FillRect(Rect(0,0,300,300)); Bitmap.Free; end;
Nyomtatás • a Printer objektum segítségével • TPrinter osztály – tartalmazza a nyomtatáshoz szükséges információkat • Rajzvászna segítségével nyomtathatunk a kiválasztott nyomtatóra • Jellemzői: • Canvas • Printing – nyomtatás folyamatban van-e • PageNuber – nyomtatás alat álló oldalszám • PageHeigh – nyomtató lap méretei pixelben • Copies - példányszám
Nyomtatás 2 • Metódusai: • BeginDoc – nyomtatás kezdéselor kell meghívni • EndDoc – nyomtatóra való kiküldés után hívjuk meg • Abort – hatásásra törlődik a nyomtattandó dokumentum • NewPage – lapdobás
Nyomtatás 3 Nyomtatás folyamata: Printer.Canvas metódusaival történik 1. nyomtató beállítások (PrintDialog, PrinterSetupDialog) 2. nyomtatás kezdése : Printer.BeginDoc 3. Írás, rajzolás a Canvasra: Printer.Canvas.TextOut(….. 4. nyomtatás befejezése : Printer.EndDoc
Példa procedure TForm1.BitBtn2Click(Sender: TObject); begin If PrintDialog1.Execute then with Printer do begin BeginDoc; Canvas.Draw(Canvas.Cliprect.Left,Canvas.Cliprect.Top, .Picture.Graphic); EndDoc; end; end;