![]() |
viele Seiten drucken
Hallo, ich muss in meinem programm ein paar bilder ausdrucken.
hier mal nen Quellcode dazu:
Delphi-Quellcode:
procedure drucken;
var pic : TJPEGImage; breite, hoehe : integer; i : integer; begin if printdialog1.Execute then begin pic := TJPEGImage.create; Orientation := poPortrait; with printer do begin for i := 1 to Seitenanzahl do begin BeginDoc; rechnung.Picture.LoadFromFile(extractfilepath(paramstr(0)) + '\Daten\Rechnungen\Seite' + inttostr(Aktuelle_Seite) + '.bmp'); pic.assign(Rechnung.Picture.Graphic); breite := GetDeviceCaps(Printer.Handle,Horzres); hoehe := GetDeviceCaps(Printer.Handle,Vertres); Canvas.StretchDraw(Rect(0,0,Breite,Hoehe), pic); EndDoc; end; end; pic.Free; end; end; nun meine frage bzw das problem: Wenn ich im Printdialog den dateinamen eingebe unter dem ich speichern möchte, bzw drucken möchte, dann druckt er mir nur die erste seite aus, und fragt dann immer wieder neu bei jeder seite! wie kann ich diese frage umgehen, so dass er alles hintereinander ausdruckt? Vielen dank für die Hilfe |
Re: viele Seiten drucken
Hallo,
du musst einfach nur BeginDoc und EndDoc aus der Schleife herausziehen. Freundliche Grüße |
Re: viele Seiten drucken
Vielen Dank für den tip, nur wenn ich es so mache wie du sagst klappt es auch net!
jetzt druckt er nur eine seite und den rest nicht!? wieso das?
Delphi-Quellcode:
with printer do
begin Orientation := poPortrait; BeginDoc; for i := 1 to Seitenanzahl do begin rechnung.Picture.LoadFromFile(extractfilepath(paramstr(0)) + '\Daten\Rechnungen\Seite' + inttostr(Aktuelle_Seite) + '.bmp'); pic.assign(Rechnung.Picture.Graphic); breite := GetDeviceCaps(Printer.Handle,Horzres); hoehe := GetDeviceCaps(Printer.Handle,Vertres); Canvas.StretchDraw(Rect(0,0,Breite,Hoehe), pic); end; EndDoc; end; |
Re: viele Seiten drucken
Vielleicht, weil du alle Bilder übereinander malst?
Füge mal NewPage ein:
Delphi-Quellcode:
begin
// ... with printer do begin Orientation := poPortrait; BeginDoc; for i := 1 to Seitenanzahl do begin rechnung.Picture.LoadFromFile(extractfilepath(paramstr(0)) + '\Daten\Rechnungen\Seite' + inttostr(Aktuelle_Seite) + '.bmp'); pic.assign(Rechnung.Picture.Graphic); breite := GetDeviceCaps(Printer.Handle,Horzres); hoehe := GetDeviceCaps(Printer.Handle,Vertres); Canvas.StretchDraw(Rect(0,0,Breite,Hoehe), pic); NewPage; end; EndDoc; end; |
Re: viele Seiten drucken
Hallo,
musst Du nicht 'Aktuelle_Seite' irgendwo in der Schleife aktualisieren? |
Re: viele Seiten drucken
Danke ersteinmal für den tip mit der neuen Seite! *fg* zu einfach um selbst drauf zu kommen! *fg*
Ja und nu stimmt es dass ich die "Aktuelle Seite" net ändere! *g* ist mir gerade auch beim ausprobieren aufgefallen! Danke auch für diesen Tip! lg Marco |
Re: viele Seiten drucken
So vielen Dank, jetzt funktioniert es auch genauso wie ich es will!
hier nochmal der korrekte Quellcode:
Delphi-Quellcode:
with printer do
begin Orientation := poPortrait; BeginDoc; for i := 1 to Seitenanzahl do begin rechnung.Picture.LoadFromFile(extractfilepath(paramstr(0)) + '\Daten\Rechnungen\Seite' + inttostr(i) + '.bmp'); pic.assign(Rechnung.Picture.Graphic); breite := GetDeviceCaps(Printer.Handle,Horzres); hoehe := GetDeviceCaps(Printer.Handle,Vertres); Canvas.StretchDraw(Rect(0,0,Breite,Hoehe), pic); if i < Seitenanzahl then NewPage; end; EndDoc; end; Danköö! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr. |
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