Delphi programozás alapjai
-
Upload
amela-shelton -
Category
Documents
-
view
42 -
download
0
description
Transcript of 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
6. ELŐADÁS6. ELŐADÁS
Grafika, nyomtatás DelphibenGrafika, nyomtatás Delphiben
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)
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
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
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
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’);
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
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
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)
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
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;
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;
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
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
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
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;