Hi,
ist garnicht so verwunderlich, denn mit dem Dialog direkt kannst du natürlich nicht drucken. Der dient halt nur der Auswahl des Druckers. Das eigentliche Drucken findet über die Ausgabe auf einem Printcanvas statt. Der verhält sich genauso, wie ein normaler Canvas, ausser dass die Ausgabe natürlich gedruckt wird.
Ein einfaches Beispiel wie du mit Dialog und Canvas arbeitest findest du in der Delphi Hilfe
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender:TObject);
var
I, Start, Stop: Integer;
begin
PrintDialog1.Options := [poPageNums, poSelection];
PrintDialog1.FromPage := 1;
PrintDialog1.MinPage := 1;
PrintDialog1.ToPage := PageControl1.PageCount;
PrintDialog1.MaxPage := PageControl1.PageCount;
if PrintDialog1.Execute
then
begin
{ Ausgewählten Druckbereich ermitteln }
with PrintDialog1
do
begin
if PrintRange = prAllPages
then
begin
Start := MinPage - 1;
Stop := MaxPage - 1;
end
else if PrintRange = prSelection
then
begin
Start := PageControl1.ActivePage.PageIndex;
Stop := Start;
end
else { PrintRange = prPageNums }
begin
Start := FromPage - 1;
Stop := ToPage - 1;
end;
end;
{ Jetzt die Seiten drucken }
with Printer
do
begin
BeginDoc;
for I := Start
to Stop
do
begin
PageControl1.Pages[I].PaintTo(
Handle, 10, 10);
if I <> Stop
then
NewPage;
end;
EndDoc;
end;
end;
end;
Gruß Der Unwissende
[Edit]Ok, dass mit der Auswahl kam jetzt auch schon von dir, sorry für die Redundanz[/Edit]