Delphi programozás alapjai

17
Delphi programozás Delphi programozás alapjai alapjai Nagyváradi Anett Nagyváradi Anett [email protected] [email protected] http://morpheus.pte.hu/~anettn http://morpheus.pte.hu/~anettn PTE PMMK MIT PTE PMMK MIT

description

Delphi programozás alapjai. Nagyváradi Anett [email protected] 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) - PowerPoint PPT Presentation

Transcript of Delphi programozás alapjai

Page 1: Delphi programozás alapjai

Delphi programozás Delphi programozás alapjaialapjai

Nagyváradi AnettNagyváradi [email protected]@morpheus.pte.hu

http://morpheus.pte.hu/~anettnhttp://morpheus.pte.hu/~anettn

PTE PMMK MITPTE PMMK MIT

Page 2: Delphi programozás alapjai

6. ELŐADÁS6. ELŐADÁS

Grafika, nyomtatás DelphibenGrafika, nyomtatás Delphiben

Page 3: Delphi programozás alapjai

Grafikai elemekGrafikai elemek

Tervezési időben létrehozható elemek:Tervezési időben létrehozható elemek:TBitBtn (gomb)TBitBtn (gomb)TSpeedButton (eszköztárgomb)TSpeedButton (eszköztárgomb)TShape (alakzat)TShape (alakzat)TImage (kép)TImage (kép)

Futási időben létrehozható elemek:Futási időben létrehozható elemek:TCanvas (vászon)TCanvas (vászon)

Page 4: Delphi programozás alapjai

Tervezési időbenTervezési időben

TBitBtn (Additional)TBitBtn (Additional)nyomógomb, kattintással indított nyomógomb, kattintással indított

tevékenység elvégzéséretevékenység elvégzéséreJellemzői:Jellemzői:

Caption - gombfeliratCaption - gombfeliratCancel - ha igaz, akkor a tevékenység az esc Cancel - ha igaz, akkor a tevékenység az esc

hatására is meghívódik hatására is meghívódik Default - ha igaz, akkor a tevékenység az enter Default - ha igaz, akkor a tevékenység az enter

hatására is meghívódikhatására is meghívódik

Page 5: Delphi programozás alapjai

Tervezési időbenTervezési időben

TSpeedButton (Additional)TSpeedButton (Additional)Eszköztár gombok megjelenítéséreEszköztár gombok megjelenítéséreÁltalában panelen helyezkednek elÁltalában panelen helyezkednek elFőleg grafikát, szöveget tartalmaznakFőleg grafikát, szöveget tartalmaznakÁllapotai: „felengedett”, „beragadt”Állapotai: „felengedett”, „beragadt”Példányai csoportosíthatóak (kölcsönös kizárás)Példányai csoportosíthatóak (kölcsönös kizárás)Jellemzői:Jellemzői:

Caption – gombfeliratCaption – gombfeliratGlyph – megjelenített kép, képek (max 4 kép)Glyph – megjelenített kép, képek (max 4 kép)NumGpyphs – hány képből áll a beszúrt Glyph (ennyi NumGpyphs – hány képből áll a beszúrt Glyph (ennyi

részre osztja)részre osztja)GroupIndex – csoportosításhoz, azonos GroupIndexGroupIndex – csoportosításhoz, azonos GroupIndexDown – ha true, gomb benyomott állapotbanDown – ha true, gomb benyomott állapotbanAllowAllUp – egy csoportbeli gombok lehetnek-e mind AllowAllUp – egy csoportbeli gombok lehetnek-e mind

felengedvefelengedve

Page 6: Delphi programozás alapjai

Tervezési időbenTervezési időben

TShapeTShapeEllipszis, kör, téglalap, négyzet Ellipszis, kör, téglalap, négyzet

megjelenítéséremegjelenítéséreJellemzői:Jellemzői:

Shape – alakzat formája (stEllipse, stCircle, …)Shape – alakzat formája (stEllipse, stCircle, …)Pen – a rajzoló toll tulajdonságait tartalmazzaPen – a rajzoló toll tulajdonságait tartalmazzaBrush – kitöltés tulajdonságaiBrush – kitöltés tulajdonságai

Page 7: Delphi programozás alapjai

Tervezési időbenTervezési időben

TImageTImageBMP, WMF, ICO grafikák megjelenítéséreBMP, WMF, ICO grafikák megjelenítéséreJellemzői:Jellemzői:

Picture – megjelenített grafika adatai (LoadFromFile, Picture – megjelenített grafika adatai (LoadFromFile, SaveToFile metódusokkal betölthető, menthető)SaveToFile metódusokkal betölthető, menthető)

Stretch – ha igaz, akkor felveszi a komponens Stretch – ha igaz, akkor felveszi a komponens méretét (torzítás), ha hamis, akkor a bal felső méretét (torzítás), ha hamis, akkor a bal felső sarokhoz igazodva jelenik meg a kép eredeti sarokhoz igazodva jelenik meg a kép eredeti méretbenméretben

Pl.:Pl.:

Image1.Picture.LoadFromFile (‘kepnev.bmp’);Image1.Picture.LoadFromFile (‘kepnev.bmp’);

Page 8: Delphi programozás alapjai

Futási időbenFutási időben

Delphiben azoknak a komponenseknek a Delphiben azoknak a komponenseknek a felületére rajzolhatunk, melyek felületére rajzolhatunk, melyek rendelkeznek rendelkeznek canvascanvas jellemzővel jellemzővel

canvascanvas =„rajzvászon” objektum, mely =„rajzvászon” objektum, mely tartalmazza a rajzoláshoz szükséges tartalmazza a rajzoláshoz szükséges tulajdonságokat, metódusokattulajdonságokat, metódusokat

Csak futási időben elérhető jellemző – a Csak futási időben elérhető jellemző – a rajzolást kódból kell megvalósítanirajzolást kódból kell megvalósítani

Page 9: Delphi programozás alapjai

Futási időben – CanvasFutási időben – Canvas

TCanvasTCanvasKomponensek rajzvásznának osztályaKomponensek rajzvásznának osztályaRajzolás metódusokkal történikRajzolás metódusokkal történikJellemzők:Jellemzők:

Pen – rajzoló tolla adatai Pen – rajzoló tolla adatai Color (cled,clWhite,… vagy 4 byteon: Color (cled,clWhite,… vagy 4 byteon: $00BlueGreenRed$00BlueGreenRed))

Style (psSolid, psDot, psDash,…)Style (psSolid, psDot, psDash,…)Width –toll vastagság pixelbenWidth –toll vastagság pixelbenMode – rajzmód (pmCopy Mode – rajzmód (pmCopy (háttér felülírása)(háttér felülírása), pmXOR, …), pmXOR, …)

Brush – kitöltési adatok Brush – kitöltési adatok Color – ecset színeColor – ecset színeStyle – ecset stílusa (bsSolid, bsHorizontal, …)Style – ecset stílusa (bsSolid, bsHorizontal, …)Bitmap – idomok kitöltése bitmintávalBitmap – idomok kitöltése bitmintával

Page 10: Delphi programozás alapjai

Futási időben – Canvas 2Futási időben – Canvas 2

További jellemzők:További jellemzők:Font – betűk jellemzője a vászononFont – betűk jellemzője a vászonon

Name – betűtípus neve (Arial, Thaoma, …)Name – betűtípus neve (Arial, Thaoma, …)Size – betűméret Size – betűméret Color – szín (clBlack, clRed, …)Color – szín (clBlack, clRed, …)Style – stílus (fsBold, fsItalic, fsUnderline, …)Style – stílus (fsBold, fsItalic, fsUnderline, …)

ClipRect – rajzvászon határai (Left, Top, Right, ClipRect – rajzvászon határai (Left, Top, Right, Bottom)Bottom)

Pl.: bal felső sarok:Pl.: bal felső sarok: (Canvas.ClipRect.Left, Canvas.ClipRect.Top)(Canvas.ClipRect.Left, Canvas.ClipRect.Top)

Page 11: Delphi programozás alapjai

Futási időben – Canvas 3 Futási időben – Canvas 3

Metódusai:Metódusai:MoveTo(x,y:integer) – kurzor pozícionálásaMoveTo(x,y:integer) – kurzor pozícionálásaLineTo(x,y:integer) – vonal húzása (x,y) pontbaLineTo(x,y:integer) – vonal húzása (x,y) pontbaPolyline (Pontok: Array of TPoint) – nyitott sokszög Polyline (Pontok: Array of TPoint) – nyitott sokszög

rajzolása a ponttömb pontjainak összekötésévelrajzolása a ponttömb pontjainak összekötésévelFillrect(ARect:TRect) – téglalap(parm.) kitöltéseFillrect(ARect:TRect) – téglalap(parm.) kitöltéseRectangle(x1,y1,x2,y2:integer) – téglalap rajzolásaRectangle(x1,y1,x2,y2:integer) – téglalap rajzolásaEllipse(x1,y1,x2,y2:integer)– ellipszis rajzolásaEllipse(x1,y1,x2,y2:integer)– ellipszis rajzolásaPolygon(Pontok: Array of TPoint) – zárt sokszögPolygon(Pontok: Array of TPoint) – zárt sokszögTextOut (x,y:integer,Text:String)- szöveg kiiratása TextOut (x,y:integer,Text:String)- szöveg kiiratása

adott pozícióbóladott pozícióbólDraw(x,y:integer,graphic:TGraphic) – garfika Draw(x,y:integer,graphic:TGraphic) – garfika

megjelenítésemegjelenítése

Page 12: Delphi programozás alapjai

PéldaPélda

onPaint eseményre:onPaint eseményre:

procedure TForm1.FormPaint(Sender: TObject);procedure TForm1.FormPaint(Sender: TObject);beginbegin with Form1.Canvas dowith Form1.Canvas do beginbegin MoveTo(10,10);MoveTo(10,10); LineTo(100,50);LineTo(100,50); TextOut(150,150,’Helló!’);TextOut(150,150,’Helló!’); end;end;end;end;

Page 13: Delphi programozás alapjai

PéldaPélda

TBitmap osztály egy példányával:TBitmap osztály egy példányával:

procedure TForm1.BitBtn1Click(Sender: procedure TForm1.BitBtn1Click(Sender: TObject);TObject);

varvar Bitmap: TBitmap;Bitmap: TBitmap;beginbegin Bitmap := TBitmap.Create;Bitmap := TBitmap.Create;Bitmap.LoadFromFile('cim3h.bmp');Bitmap.LoadFromFile('cim3h.bmp');

Form1.Canvas.Brush.Bitmap := Bitmap;Form1.Canvas.Brush.Bitmap := Bitmap; Form1.Canvas.FillRect(Rect(0,0,300,300));Form1.Canvas.FillRect(Rect(0,0,300,300));Bitmap.Free;Bitmap.Free;

end;end;

Page 14: Delphi programozás alapjai

NyomtatásNyomtatás

a Printer objektum segítségévela Printer objektum segítségével TPrinter osztály – tartalmazza a TPrinter osztály – tartalmazza a

nyomtatáshoz szükséges információkatnyomtatáshoz szükséges információkat Rajzvászna segítségével nyomtathatunk a Rajzvászna segítségével nyomtathatunk a

kiválasztott nyomtatórakiválasztott nyomtatóra Jellemzői:Jellemzői:

CanvasCanvasPrinting – nyomtatás folyamatban van-ePrinting – nyomtatás folyamatban van-ePageNuber – nyomtatás alat álló oldalszámPageNuber – nyomtatás alat álló oldalszámPageHeigh – nyomtató lap méretei pixelbenPageHeigh – nyomtató lap méretei pixelbenCopies - példányszámCopies - példányszám

Page 15: Delphi programozás alapjai

Nyomtatás 2Nyomtatás 2

Metódusai:Metódusai:BeginDoc – nyomtatás kezdéselor kell BeginDoc – nyomtatás kezdéselor kell

meghívnimeghívniEndDoc – nyomtatóra való kiküldés után EndDoc – nyomtatóra való kiküldés után

hívjuk hívjuk megmegAbort – hatásásra törlődik a nyomtattandó Abort – hatásásra törlődik a nyomtattandó

dokumentumdokumentumNewPage – lapdobásNewPage – lapdobás

Page 16: Delphi programozás alapjai

Nyomtatás 3Nyomtatás 3

Nyomtatás folyamata: Printer.Canvas Nyomtatás folyamata: Printer.Canvas metódusaival történikmetódusaival történik

1. nyomtató beállítások (PrintDialog, 1. nyomtató beállítások (PrintDialog, PrinterSetupDialog)PrinterSetupDialog)

2. nyomtatás kezdése : Printer.BeginDoc2. nyomtatás kezdése : Printer.BeginDoc

3. Írás, rajzolás a Canvasra: 3. Írás, rajzolás a Canvasra: Printer.Canvas.TextOut(…..Printer.Canvas.TextOut(…..

4. nyomtatás befejezése : Printer.EndDoc4. nyomtatás befejezése : Printer.EndDoc

Page 17: Delphi programozás alapjai

PéldaPélda

procedure TForm1.BitBtn2Click(Sender: TObject);procedure TForm1.BitBtn2Click(Sender: TObject);beginbeginIf PrintDialog1.Execute thenIf PrintDialog1.Execute then with Printer dowith Printer do beginbegin BeginDoc;BeginDoc;

Canvas.Draw(Canvas.Cliprect.Left,Canvas.Cliprect.Top, Canvas.Draw(Canvas.Cliprect.Left,Canvas.Cliprect.Top, .Picture.Graphic);.Picture.Graphic);

EndDoc;EndDoc; end;end;end;end;