Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Canvas an Drucker senden und drucken (https://www.delphipraxis.net/23458-canvas-drucker-senden-und-drucken.html)

mytar 15. Jul 2004 16:15

Re: Canvas an Drucker senden und drucken
 
@shmia:
Zitat:

begin
Printer.BeginDoc;
MeinTImage.PaintTo(Printer.Canvas.Handle, 100, 100);
// da aber die Pixels deines Images auf dem Drucker 1 zu 1 umgesetzt werden
// wird dein Bild recht klein werden
Printer.EndDoc;
end;
Ich denke bei TImage gibt es keine PaintTo-Methode, oder doch?

shmia 15. Jul 2004 16:52

Re: Canvas an Drucker senden und drucken
 
Zitat:

Zitat von mytar
Ich denke bei TImage gibt es keine PaintTo-Methode, oder doch?

Hey, du hat ja recht. :shock:
Die Methode PaintTo gibt es nur bei WinControls. Und da TImage von TGraphicControl abgeleitet ist,
muss man dort mit TGraphicControl.Canvas arbeiten.
Damit habe ich eine Procedure gebaut, die jedes Control zeichnen kann:
Delphi-Quellcode:
type
  TGC_cracker = class(TGraphicControl) // Hilfsklasse, wg. Zugriff auf protected Properties
  end;

procedure PaintControlToCanvas(control:TControl; Canvas:TCanvas; x,y:Integer);
var
   dest, src : TRect;
begin
   Assert(Assigned(control));
   Assert(Assigned(canvas));
   if control is TWinControl then
      TWinControl(control).PaintTo(Canvas.Handle, x, y)
   else if control is TGraphicControl then
   begin
      src := control.ClientRect;
      dst := src;
      OffsetRect(dest, x, y);
      Canvas.CopyRect(dest, TGC_cracker(control).Canvas, src);
   end
   else
      Assert(False, 'PaintControlToCanvas(: Control-Class not supported');
end;

mytar 15. Jul 2004 16:54

Re: Canvas an Drucker senden und drucken
 
Super, ich werds gleich testen

mytar


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 Uhr.
Seite 2 von 2     12   

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