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:
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;
[edit=alcaeus]Delphi-Tags eingefuegt. Bitte in Zukunft selbst machen. Danke Mfg, alcaeus[/edit]