Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

AW: Drucken einer/mehrerer Groupboxen

  Alt 29. Mär 2011, 17:10
Du kannst es ja mal mit dieser Prozedur versuche:
Delphi-Quellcode:
type TGraphicControlcracker = class(TGraphicControl);

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;
      dest := src;
      OffsetRect(dest, x, y);
      Canvas.CopyRect(dest, TGraphicControlCracker(control).Canvas, src);
   end
   else
      Assert(False, 'PaintControlToCanvas: Control-Class not supported');
end;
Also dann ungefähr so:
Delphi-Quellcode:
Printer.BeginDoc;
PaintControlToCanvas(GroupBox1, Printer.Canvas, 100, 80);
...
Printer.EndDoc;
Zu beachten ist, dass die Controls eins zu eins gedruckt werden.
Bei 600dpi Druckerauflösung kann das Ergebnis sehr klein ausfallen.
Andreas
  Mit Zitat antworten Zitat