![]() |
Drucker druckt Druckerdialog mit
Hallo,
und erstmal moin,moin, bin neu hier. Hab früher in Pascal geschrieben und hab ziemlich Probleme mit den Prinzipien von Delphi. Aktuell versuche ich seit Wochen, ein Canvas auszudrucken, wobei das Bild zur Laufzeit erzeugt wurde. Wenn ich nun das Canvas ausdrucken will (Quelltext unten) dann druckt der mir den Druckerdialog gleich mit aus. Schiebe ich den Dialog zur Seite, entsteht an der Stelle, wo der Dialog war, ein blinder Fleck auf dem Bildschirm, und der Drucker macht daraus ein graues Rechteck. Wäre froh über ne auch für einen newbie verständliche Lösung Danke + Gruss Ekbert-Joachim (EJ)
Delphi-Quellcode:
[edit=alcaeus]Delphi-Tags eingefuegt. Bitte in Zukunft selbst machen. Danke :) Mfg, alcaeus[/edit]
procedure TForm1.ToolButton15Click(Sender: TObject);
var SrcRect:Trect;Targetrect:Trect; printWidth,PrintHeight:integer; begin if PrintDialog1.Execute then begin printer.BeginDoc; SrcRect:=Rect(0,0,Paintbox1.Width,Paintbox1.Height); PrintWidth := MulDiv(Paintbox1.Width,printer.PageHeight,Paintbox1.Height); if PrintWidth < printer.PageWidth then PrintHeight := printer.PageHeight else begin PrintWidth := printer.PageWidth; PrintHeight := MulDiv(Paintbox1.Height,printer.PageWidth,Paintbox1.Width) end; TargetRect := Rect (0,0,PrintWidth,PrintHeight); // Kopiert den Inhalt des PaintBox1.Canvas in das Printer1.Canvas printer.canvas.CopyRect(TargetRect,Paintbox1.Canvas,SrcRect); printer.EndDoc; end; end; |
Re: Drucker druckt Druckerdialog mit
Versuch es mal so:
Delphi-Quellcode:
begin
if PrintDialog1.Execute then begin Repaint; Application.ProcessMessages; Printer.BeginDoc; |
Re: Drucker druckt Druckerdialog mit
Hi Sebastian,
merci - aber damit passiert jetzt gar nix mehr, wenn ich auf den Drucker-Dialog-OK drücke. Es kommt allerdings auch keine Fehlermeldung. Das "Repaint" hat keinerlei Wirkung, das Bild wird nicht neu aufgebaut. :roll: + Gruss EJ |
Re: Drucker druckt Druckerdialog mit
Zeichnesch du des auf eine Form oder auf ein Image?!?
|
Re: Drucker druckt Druckerdialog mit
:gruebel: ich zeich' n deß auf ne paintbox, wie im Quelltext oben beschrieben...
Gruss aiguille (der seit Wochen versucht, einige Pixel auszudrucken) |
Re: Drucker druckt Druckerdialog mit
Pass auf, du erzegst dir am besten ein Bitmap mit TBitmap. Dann kopierst du das im OnPaint der paintbox mit BitBlt aufs Canvas der Paintbox. Deine Muster u.a. zeichnest du dann eifach ins Bitmap und rufst anschließend PaintBox.RePaint; auf.
Drucken kannst du dann entweder, indem du das Bitmap oder den Paintboxinhalt aufs Druckercanvas malst. (am besten wieder mit BitBlt) :zwinker: |
Re: Drucker druckt Druckerdialog mit
Zitat:
aber die Lösung von jfheins is wohl die beste! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz