Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Printers.Canvas auf TImage ausgeben (https://www.delphipraxis.net/157882-printers-canvas-auf-timage-ausgeben.html)

hedie 28. Jan 2011 09:28

Printers.Canvas auf TImage ausgeben
 
Hallo zusammen

Ich erstelle mir mittels Printer.Canvas eine zu druckende Seite...

Also vorschau würde ich nun gerne die Canvas auf einem TImage ausgeben...

Mein erster gedanke war, Canvas.Bitmap übergeben, aber da Canvas dies nicht kennt benötige ich nun hife...

Ich hoffe jemand kennt eine lösung... Danke schonmal :)

DeddyH 28. Jan 2011 09:34

AW: Printers.Canvas auf TImage ausgeben
 
Könntest Du nicht einfach eine Zeichenroutine schreiben, der Du den entsprechenden Canvas als Parameter übergibst? Wobei bei einer Bitmap natürlich dann die Abmessungen des Printer.Canvas zu berücksichtigen wären (Höhe, Breite, Seitenränder, Skalierung, etc.). Auf der anderen Seite kannst Du natürlich auch gleich entsprechende PrintPreview-Komponenten verwenden, z.B. die von DelphiArea.

Bummi 28. Jan 2011 09:35

AW: Printers.Canvas auf TImage ausgeben
 
Du mußt vorher eingreifen und in Deinen Ausgaberoutinen statt Printer.Canvas ein Klassenlokales oder per Parameter übergebenes Canvas verwenden, diese kannst Du dann mit Printer.Canvas oder auch mit Image.canvas belegen.

hedie 28. Jan 2011 09:38

AW: Printers.Canvas auf TImage ausgeben
 
Zitat:

Zitat von Bummi (Beitrag 1077844)
Du mußt vorher eingreifen und in Deinen Ausgaberoutinen statt Printer.Canvas ein Klassenlokales oder per Parameter übergebenes Canvas verwenden, diese kannst Du dann mit Printer.Canvas oder auch mit Image.canvas belegen.

Klingt sehr spannend und hilfreich.... ist jedoch estwas zu hoch... Könntest du mir das ein wenig genauer erklären?
Vielleicht mit einem Codeschnipsel?

Also ich vermute du meinst ein neues Canvas vom typ TCanvas anlegen und da rein zeichnen..
Dieses dann zum Drucken an Printer.Canvas übergeben oder zum darstellen an Image.Canvas übergeben...

stimmt das?

DeddyH 28. Jan 2011 09:39

AW: Printers.Canvas auf TImage ausgeben
 
Delphi-Quellcode:
procedure Zeichnen(aCanvas: TCanvas);
Hier kannst Du entweder Printer.Canvas oder Bitmap.Canvas oder oder oder... übergeben.

Bummi 28. Jan 2011 09:42

AW: Printers.Canvas auf TImage ausgeben
 
Die billigste Variante, Deine Ausgaberoutinen z.B. Umschreiben auf
Delphi-Quellcode:
FCanvas.TextRect(......);
Fcanvas.Fillrect(....);
und vor dem Druck FCanvas das Zielcanvas zuweisen..


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz