Programozás Delphi 5

Sok fejlesztő szembe kell szervezni egy alkalmazásból nyomtat a szöveges dokumentumok és grafikák. Delphi fejlesztő környezet biztosítja, hogy megoldja ezt a problémát nagyon egyszerűen használható és hatékony eszköz.

nyomtatás mechanizmust tartalmaz egy speciális modul, nyomtatókat. PAS. Elég annyit hozzá, hogy a részben az alkalmazás, és a program készen áll, hogy befolyásolja a nyomtatót. A szervezet a sajtó a forráskódot Tprinter osztály tulajdonságait és módszerek, amelyek hozzáférést biztosítanak a nyomtatók a rendszerben.

Az ebbe az osztályba tartozó programozó tud nyomtatni az alkalmazás nem csak szöveget, hanem képeket és raszteres grafika.

Állítsa be a nyomtatót, akkor a speciális eleme a VCL - a standard rendszer dialógus nyomtató beállítása

Ez a fejezet az alábbi témákat:

  • Tprinter tulajdonságok és módszerek egy osztály;
  • Nyomtatás Programozás szövegek és felsorolja a húrok;
  • programozás nyomdai raszter képeket és önkényes grafikai elemek;
  • hogyan kell nyomtatni egy képet formában segítsége nélkül Tprinter osztályban.

Táblázat 9.1.Svoystva és módszerek klassaT p rinter

Inicializ nyomtatás új oldalon. Property Value PAGENUMBER így növekszik

Felhívják az olvasó figyelmét arra a tényre, hogy a legtöbb ingatlan (betűtípusok, Handle, oldalnyi szélességű, PageHeight, megszakítva, nyomtatás, képességei és dr.) Csak olvashatók.

Létrehozása és hivatkozás egy példányát az osztálynak használjuk TPrinter bejelentett egy modult funkciót nyomtatók

funkció nyomtató: TPrinter;

Ez visszaad egy pointert az újonnan létrehozott esetben az osztály.

Amint látható 9.1 táblázat, TPrinter osztály nem csak hozzáférést biztosít a paramétereket az aktuális nyomtató, hanem létrehoz egy indexelt névsorát összes nyomtatót a rendszer számára elérhető nyomtatókat. A nyomtatót a listából lehet aktív az ingatlan printerindex.

print ellenőrzés által végzett leírt módszerekkel megszakítás asztal, BeginDoc, EndDoc ÉS newpage. Egy nagyon fontos szerepet vászon tulajdonság, ami a vázlatot a nyomtató (lásd a fickó. 8). A rendszer segítségével a nyomtató is használható rajz vagy kiadására szövegek, valamint a formák, vagy bármely más komponensnek a vásznon.

Egy programozó szemszögéből a legegyszerűbb módja annak, hogy nyomtassa ki a szöveget a Delphi alkalmazás óta nem változott a korábbi változat Turbo Pascal. Nyomtatás és írjon alkalmazott eljárások writein, amely hozzá van rendelve a nyomtató kimeneti eszköz.

Mi megoldjuk a legegyszerűbb probléma - nyomtatott szentségi kifejezés „Hello, nyomtató!” (Mi a teendő - hagyomány). Ehhez hozzon létre egy konzolos alkalmazás (Fájl menü / Új) ​​és adjuk hozzá a következő forráskódot (ne felejtsük el, hogy szükség van hozzá a felhasználási szakasz nyomtatók modul):

használja SysUtils, nyomtatók;

var FPrint: TextFile;

Assignprn eljárás nyomtatók modul köti a változó szöveges fájlt a nyomtató aktuális rendszer, és létrehozza a kimeneti puffer memóriában. Átírni a kezelő kinyitja a kimeneti eszköz. Writein eljárás nyomtatási sor, és lefordítja a nyomtatási pozíció a következő sorba (eljárási írási ellentétben Writein újsor nem). Végül CloseFile eljárást befejezi a nyomtatást és szétválasztja fájl változó, és a nyomtató (ábra. 9.1).

Programozás Delphi 5

Ábra. 9.1.Glavnaya formában DemoPrint projekt

Az egyik szereplő, vagy írjon writein húzhatnak több különféle típusaira - .. egész számok, lebegőpontos változók, stb Erre a célra az értékeket vagy változókat vesszővel elválasztva.

Ráadásul, mivel része a kimeneti változók olyan karakterláncok objektumok TSrings És TStringList.

Példaként vegyünk egy kis projekt DemoPrint. Ebben a keresett fájl kiválasztása a fájlmegnyitási párbeszédablak. Attól függően, hogy az állam a kapcsolók RadioGrp csoport fájl kimenet küldeni a képernyőn TMemo alkatrész vagy közvetlenül a nyomtatóra.

A gombra kattintva printBtn TMemo komponens tartalma jelenik meg a nyomtató (lista 9.1.).

Listing 9.1.Sektsiya végrehajtása a modul fő formája DemoPrint projekt

végrehajtására használ nyomtatók;

var FileTxt, PrintTxt: TextFile;

i: = 0 Memol.Lines.Count -1 do WriteLn (PrintTxt, Memol.Lines [i]);

eljárás TMainForrn.RadioGrpClick (Sender: TObject);

kezdődik PrintBtn.Enabled: = RadioGrp.Itemlndex = 0;

Módszer PrintBtnClick felvezető rendelkezik nyomtatási sorok TMemo komponenst. Ebből a célból, minden sor a lista indexelt sorok (vonalak tulajdonság) nyomtatott eljárás writein. Fprint fájl változó be van állítva az alapértelmezett nyomtató.

Handler eljárás RadioGrpciick fájlt letiltja a nyomtatás gombot, amikor bekapcsolja a kimeneti eszköz a nyomtatóhoz.

Az alábbi ellenőrző karaktereket lehet használni nyomtatott szabályozás:

Write (FPrint 'Miután ez a sor költözik egy új vonal', # 10, # 13);

Writein (FPrint 'Miután ez a sor kiderül oldalon Run', ^ L);

Amikor nyomtat egy szöveges fájlt az alapértelmezett betűméret 10. Rendszer A betűtípus beállításait (köztük nyomtatásakor) tulajdonság vászon objektum nyomtatót. Ez a következőképpen nézhet ki:

A Printer.Canvas.Font do

Amikor nyomtat grafikák segítségével vászonra ingatlan típusa TCanvas például Tprinter osztálya nyomtatók modult. Class vászon gazdag beállításegyüttest megjelenítésére különböző grafikai elemek és a bitmap képeket. Részletek a tulajdonságok és módszerek a vászon fejezetben tárgyaljuk 8, így az érdeklődő olvasó hivatkozhatunk rá, de itt fogunk összpontosítani csak a funkciók a grafika nyomtatásához.

Jellemzői a végrehajtás menetrendjét az átviteli folyamat, hogy a nyomtató ki a vászon rejtve maradnak a fejlesztő. Annak érdekében, hogy a nyomtatás elvégzéséhez szükséges a következő lépéseket:

  1. Ahhoz, hogy indítsa el a nyomtatást használó BeginDoc módszerrel.
  2. Segítségével TCanvas tulajdonságok és módszerek egy osztály, egy példányát, amely rendelkezésre áll a nyomtató aktuális a vászon ingatlan, hozza létre a rajz telek. Amikor hívja módszerek megfelelő grafikus elemeket a nyomtatóra küldött.
  3. Nyomtatás teljes EndDoc eljárás kerül meghívásra.

Felhívjuk figyelmét, hogy a fellebbezés a vázlatot a nyomtató funkciót csak a rajt után a nyomtatás. Ellenkező esetben, egy futásidejű hiba lép fel.

Amikor átadja a tartalmat a vászon képe egy papírlapra nyomtatott példányban erősen függ a nyomtató beállításait. Ezért a nyomtatás előtt, kívánatos, hogy ellenőrizze a méretet és lebonyolítását skála, ha szükséges. Ez végre nem csak a túl nagy kép, de ha szükséges, növelje a kis képre a lap méretét.

A méret a papír meghatározni az aktuális nyomtató tulajdonságait PageHeight és oldalnyi szélességű osztály TPrinter.

Ezen túlmenően, a minősége a prezentációs grafika (felbontás) a képernyő és a nyomtató jelentősen változhat. Aktuális nyomtatási felbontás megtalálható a Windows API függvény GetDeviceCaps amely értékkel tér vissza a skála mind vízszintesen, mind függőlegesen, megfelelő számú logikai pixel per inch az alapértelmezett nyomtató.

Példák végrehajtása a kód nyomdai grafika alább.

Nyomtatás raszteres képek

Nyomtatás raszteres kívánt képet, hogy töltse le a példánya a TBitmap vagy annak jogutódja. A legegyszerűbb módja, hogy használja az alkalmazást Timage alkatrész vagy hozzon létre magának egy objektum típusú TBitmap. A képet azután a vásznon nyomtató standard módszerekkel és TPrinter osztály biztosítja a nyomtatást.

Például nyomtatni egy képet a oldal közepén megváltoztatása nélkül a skála következők szerint kell végrehajtani:

eljárás TForml.ButtonlClick (Sender: TObject);

A nyomtató, Imagel do

if (Picture.Width> oldalnyi szélességű) vagy (Picture.Height> PageHeight), akkor kezdődik

ShowMessage (Nagyobb oldalak ');

Canvas.Draw ((oldalnyi szélességű - Picture.Width) div 2, (PageHeight - Picture.Height) div 2, Picture.Bitmap);

Ha a képet az oldalon, a Canvas módszer. Draw biztosítja a kimeneti kép az oldalon.

Mert nem arányos a képet az oldal mérete, megteheti:

eljárás TFormI.ButtonlClick (Sender: TObject);

var ImageRect: TRect;

A nyomtató, Imagel do

Ebben az esetben minden munkát skálázás módszerével végzi StretchDraw vászon, amely átméretezi a képet, hogy a méret a téglalap ImageRect.

Arányosan skála elvégzéséhez szükséges elemi számítások a számítás a mérete az oldalán a téglalap. Egy átfogó példa az ellátási Delphi: mappa heip \ példák \ jpeg.

Nyomtatás grafikus primitívek

Nyomtatás tetszőleges grafikus formák és szöveg a grafika lehető létrehozása nélkül a raszter kép, de közvetlenül a képességeit a tárgy tulajdonságait Canvas nyomtatót.

eljárás TFormI.ButtonlClick (Sender: TObject);

A Printer.Canvas do kezdődik Pen.Color: = clBlack;

R: = téglalap (10, 10, 160, 160);

Ellipszis (R.Left, R.Top, R.Right, R.Bottom);

TextOut (P.X, P.Y, 'ellipszis');

Ha ezt a kódot a nyomtatón kell nyomtatni kört az aláírás „Ellipse” alatta. Figyeljük meg, hogy ebben az esetben a szöveg a kép alatt nyomtattunk grafikus eszközök.

Az ingatlan osztály TPrinter vászon lehetővé teszi számunkra, hogy végre egy másik érdekes jellemzője: a tartalom a vászon vagy más vizuális komponens lehet nyomtatni anélkül, hogy túl sok gond.

Tegyük fel, hogy megjeleníti a geometrikus minta, ha rendering formák rá vásznon.

Programozás Delphi 5

Ábra. 9.2.Geometrichesky alakzatrajzoló a vásznon

Létrehozásához és használja a tulajdonságait TCanvas osztály módszerek. Melléklet DemoPrintCanvas (ábra. 9.2), hogy hozzon létre egy képet a OnPaint felvezető módszer.

Listing 9.2Sektsiya végrehajtása a modul fő formája DemoPrintCanvas projekt

eljárás TMainForm.FormPaint (Sender: TObject);

Kezdjük a vászonképzővel Pen.Color: = clBlack;

Kapcsolódó cikkek