A grafika a Delphi

Munka grafika Delphi nemcsak vonalak és számok, hanem, és a nyomtatási szöveges dokumentumokat. Ezért dolgozik Delphi grafika kell adni egy kis időt. Munka grafika Delphi magában fordul a vásznon - Vászon ingatlan alkatrészeket. Canvas Delphi egy vászon, amely lehetővé teszi, hogy a programozó van, hogy minden ponton (pixel), és ha a művész megjelenítésére, amit akar. Természetesen felhívni pixelenként a grafikus Delphi nem szükséges, Delphi rendszer hatékony eszközök dolgozó grafikus. feladatának megkönnyítése a programozó.

Természetesen nem minden a komponensek Delphi van ezekkel a tulajdonságokkal. További lapjának egy speciális összetevő TImage. Kifejezetten festmény, hanem az a tulajdonságuk, vászon, például alkatrészek, mint ListBox, ComboBox, StringGrid, valamint a formát, hogy a hely a tartozékok! Ezen túlmenően, Delphi dokumentumok nyomtatásához utal, hogy a tulajdon a vászon tárgyat, például egy nyomtatót.

A fő tulajdonsága egy ilyen tárgy, mint a vászon Delphi - pixel [i, j] írja TColor. vagyis egy kétdimenziós tömb pont (pixel) által meghatározott színét. Rajz a vásznon történik, ha rendel egy adott szín pont a vásznon. Minden pixel lehet rendelni bármelyik elérhető a Windows színű. Például az állítás

vörös ólom rajz egy pont koordinátái [100, 100]. Ismerje pixeles színes képes visszafordítani a feladat:

Típus TColor meghatározni, mint egy nagy egész (LongInt). Ő négy bájt információt tartalmaznak az arányokat a kék (B), zöld (G) és piros (R) színekben. A 16-ed rendű rendszer, ez így néz ki: $ 00BBGGRR. Aránya az egyes színek eltérhetnek a 0 és 255 Ezért, annak érdekében, hogy megjelenjen a legtöbb piros pont, meg kell rendelni egy szín $ 000000FF.
Szabványos színek Delphi meghatározott területén szöveges állandók. Látható megnyitásával az Object Inspector Color tulajdonság, például az azonos alakú.

Az alábbi táblázat néhány, a tulajdonságok és módszerek a vásznon:

TextOut eljárás (X, Y: integer; const szöveg: WideString);
Szöveg kimenetet vonal kiindulva (X, Y) - a bal felső pixel a szöveget.

TextWidth tulajdonság (var szöveg: String): integer;
Szöveget tartalmazó karakterlánc hossza pixelben.

TextHeight tulajdonság (var szöveg: String): integer;
Szöveget tartalmazó sor magassága pixelben.

FillRect eljárás (const téglalap: TRect);
Téglalap Kitölti a téglalapot a vásznon az aktuális ecsettel. Ezt fel lehet használni, beleértve a törlési a képet a vászonra.


Írd meg, csak a módszerek a vászon, egy kép kérelmet a vásznon komponens fényképek a beírt szöveg a Memo komponens:

Elhelyezkedés formájában Memo alkatrészek, fényképek száma (a kiegészítő oldal), Edit, UpDown (elhelyezkedik Win32 oldal). Associate UpDown ingatlan egyenlővé komponens a legördülő listában a komponens szerkesztése. Ez az összetevő fogjuk változtatni a betűméretet. Mivel mind a Memo és fényképek vagyunk ugyanazon a kimeneten - A képernyőn, a pixelméret azonos, ezért a képméret egyenlő lesz.

A grafika a Delphi

Az első dolog, amit teszünk inicializálni a változókat a program kezdetekor. Meg kell határozni a méretét a rajz terület (ez létrehoz egy globális változó téglalap TRect típus), és a háttér színe fehér kép:

eljárás TForm1.FormCreate (Sender: TObject);
kezdődik
Rect.Left: = 0;
Rect.Top:=0;
Rect.Right: = Image1.Width;
Rect.Bottom: = Image1.Height;
Image1.Canvas.Brush.Color: = clWhite;
végén;

Aztán felhívni a keret körül az oldalán a kép:

eljárás TForm1.page;
kezdődik
A Image1.Canvas do
kezdődik
MoveTo (0, 0);
LineTo (Image1.Width-1, 0);
LineTo (Image1.Width-1, Image1.Height-1);
LineTo (0, Image1.Height-1);
LineTo (0, 0);
végén;
végén;

Próbáljuk ki. Minden működik, de a keret még nem jelenik meg. Tehát új oldalt eljárást FormCreate eljárást. Most szépen. Ezután írj egy egyszerű törlési eljárás tisztítás parancsot. Meg kell nevezni megújítása előtt a kép, különben az előző és az azt követő képek átfedik egymást.

eljárás TForm1.clearing;
kezdődik
Image1.Canvas.FillRect (téglalap); // téglalap téglalap tele fehér, a kép törlésre kerül.
végén;

Most jött a fordulat közvetlen szöveges kimeneti eljárást. Kijelző szövege kezdődik a lényeg (3, 3) - a bal felső sarokban a lap egy kis bemélyedés 3 pixel. Minden ezt követő vonal tolódik a magassága egy sorban:

eljárás TForm1.prn;
var i: integer;
kezdődik
A Image1.Canvas do
i: = 1 Memo1.Lines.Count do
TextOut (3, 3+ (i-1) * TextHeight ( 'A'), Memo1.Lines [i-1]);
végén;

Most már minden készen áll szöveges kimenet. Ezáltal az esemény OnChange:

eljárás TForm1.Memo1Change (Sender: TObject);
kezdődik
tisztás
PRN;
oldal;
végén;

És végül, hogyan kell változtatni a betűméretet:

eljárás TForm1.Edit1Change (Sender: TObject);
kezdődik
Memo1.Font.Size: = UpDown1.Position;
Image1.Canvas.Font.Size: = UpDown1.Position;
Memo1Change (feladó);
végén;

Módosíthatja a program a kimeneti nyomtatandó szöveget. Együttműködik a nyomtatót kell csatlakoztatni nyomtatók modul:

felhasználások
Ablakok, üzenetek, SysUtils, Változatok, osztályok, grafika, vezérlők, Forms,
Dialogs, StdCtrls, nyomtatók;

Ha a nyomtatót mind a penge nyomtatás megkezdéséhez módszerrel úgynevezett BeginDoc. majd készített egy dokumentumot kimenet, a nyomtatás befejeződik meghívásával EndDoc módszer:

Printer.BeginDoc;
A Printer.Canvas do
kezdődik
. Dokumentum nyomtatása.
végén;
Printer.EndDoc;

A szélessége és magassága a nyomtató érhetők el a szövet tulajdonságait és Printer.PageWidth Printer.PageHeight. Nyomtatás után ugyanazon az oldalon, és indítsa el a nyomtatást, a másik, akkor Printer.NewPage módszer.