Okay, vielen Dank, mit dem Link bin ich tatsächlich durchgekommen und kann jetzt sichtbar drucken.
Ich werde noch mit ein paar anderen Drucken rumexperimentieren, vllt muss ich das noch ein wenig fein-tunen, aber damit kann ich zumindest mal arbeiten.
Danke vielmals
Delphi-Quellcode:
var
PrintDialog : TPrintDialog;
begin
PrintDialog := TPrintDialog.Create(self);
if PrintDialog.Execute then
begin
Printer.BeginDoc;
SetGraphicsMode(Printer.Canvas.Handle, GM_ADVANCED);
SetMapMode(Printer.Canvas.Handle,MM_ANISOTROPIC);
SetViewportExtEx(Printer.Canvas.Handle, 5,5, nil);
ScrollBoxToCanvas(ScrollBox1,Printer.Canvas) ;
Printer.EndDoc;
end;
end;
procedure TFormKampf.ScrollBoxToCanvas(ScrollBox:TScrollBox; Canvas:TCanvas);
var saveY, Y, SchrittY:integer;
saveX, X, SchrittX:integer;
abbruchY, abbruchX:boolean;
saveBorderStyle:TBorderStyle;
begin
saveY:=ScrollBox.VertScrollBar.Position;
saveX:=ScrollBox.HorzScrollBar.Position;
saveBorderStyle:=ScrollBox.BorderStyle;
ScrollBox.BorderStyle:=bsNone;
ScrollBox.VertScrollBar.Position:=0;
Y:=0;
SchrittY:=ScrollBox.Height-100;
repeat
ScrollBox.HorzScrollBar.Position:=0;
X:=0;
SchrittX:=ScrollBox.Width-100;
abbruchY:=(ScrollBox.VertScrollBar.Position <> Y);
repeat
abbruchX:=(ScrollBox.HorzScrollBar.Position <> X);
ScrollBox.Refresh;
ScrollBox.PaintTo(Canvas,ScrollBox.HorzScrollBar.Position,
ScrollBox.VertScrollBar.Position);
ScrollBox.HorzScrollBar.Position:=ScrollBox.HorzScrollBar.Position + SchrittX;
X:=X+SchrittX;
until abbruchX;
ScrollBox.VertScrollBar.Position:=ScrollBox.VertScrollBar.Position + SchrittY;
Y:=Y+SchrittY;
until abbruchY;
ScrollBox.VertScrollBar.Position:=saveY;
ScrollBox.HorzScrollBar.Position:=saveX;
ScrollBox.BorderStyle:=saveBorderStyle;
end;