AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rave: Seitenanzahl nach Preview feststellen?

Ein Thema von SearchBot · begonnen am 14. Nov 2013 · letzter Beitrag vom 21. Nov 2013
Antwort Antwort
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
311 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Rave: Seitenanzahl nach Preview feststellen?

  Alt 14. Nov 2013, 13:45
Hallo,

ich habe mir die Aufgabe gestellt, anhand der erzeugten Seiten im Preview einzustellen, ob die Ausgabe auf Duplex geht oder nicht.

Ich finde aber nicht heraus, wo ich die Anzahl der gerenderten Seiten auslesen kann...
Ich suche sowas wie
Delphi-Quellcode:
if Preview.PageCount>1 then
      RvSystem1.SystemPrinter.Duplex:=dupHorizontal
 else RvSystem1.SystemPrinter.Duplex:=dupSimplex;
Also anstelle von Preview.PageCount sollte die Variable stehen, aus der ich die Anzahl der Seiten lesen kann.
Wiewowas geht das? Oder gehts noch viiiiel einfacher?
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: Rave: Seitenanzahl nach Preview feststellen?

  Alt 14. Nov 2013, 20:04
Hallo

Zitat:
[...] Ich finde aber nicht heraus, wo ich die Anzahl der gerenderten Seiten auslesen kann [...] Wiewowas geht das?
Einfach selbst zählen.

Etwa so (das Rave Project etc. muss man sich dazudenken):
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    RvSystem1: TRvSystem;
    procedure RvSystem1AfterPrint(Sender: TObject);
    procedure RvSystem1BeforePrint(Sender: TObject);
    procedure RvSystem1NewPage(Sender: TObject);
  private
    FPageCount : Integer;
  end;

procedure TForm1.RvSystem1BeforePrint(Sender: TObject);
begin
  FPageCount := 0;
end;

procedure TForm1.RvSystem1NewPage(Sender: TObject);
begin
  Inc (FPageCount)
end;

Zitat:
Ich suche sowas wie
Delphi-Quellcode:
if Preview.PageCount>1 then
      RvSystem1.SystemPrinter.Duplex:=dupHorizontal
 else RvSystem1.SystemPrinter.Duplex:=dupSimplex;
Und dann noch:
Delphi-Quellcode:
procedure TForm2.RvSystem1AfterPrint(Sender: TObject);
begin
  if FPageCount = 1 then
    RvSystem1.SystemPrinter.Duplex := dupSimplex
  else
    RvSystem1.SystemPrinter.Duplex := dupHorizontal
end;
fertig

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
311 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Rave: Seitenanzahl nach Preview feststellen?

  Alt 15. Nov 2013, 11:46
Vielen Dank, klappt super.

Ich hab nur statt bei Afterprint es bei PreviewShow reingemacht.
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#4

AW: Rave: Seitenanzahl nach Preview feststellen?

  Alt 16. Nov 2013, 01:01
Hallo,

Zitat:
Vielen Dank, klappt super.
Freut mich.

Zitat:
Ich hab nur statt bei Afterprint es bei PreviewShow reingemacht.
Der Code war in AfterPrint schon richtig. Du kannst es natürlich auch gerne in PreviewShow reinsetzen (ist ja nicht zwangsläufig falsch).

Wenn Du Dir mal ein leeren AfterPrint Event in Dein Projekt legst, dann zwei Breakpoints - jeweils einen am Ende von AfterPrint und PreviewShow - setzt und Dein Programm durch den Debugger laufen lässt, wirst Du sehen, dass die Programmausführung zunächst mal in AfterPrint anhalten wird (erst danach in PreviewShow). Mit anderen Worten: Das direkte Drucken (ohne vorherige Preview) wird dann im Simplex-Mode laufen.

Lass Dich nicht vom Methodennamen verwirren; AfterPrint heißt nicht, dass der Code erst nach der Ausgabe auf dem Drucker abgearbeitet wird, sondern nur: Ich habe fertig (das/die Dokument(e) gerendert)

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
311 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Rave: Seitenanzahl nach Preview feststellen?

  Alt 21. Nov 2013, 09:35
Oh, das ist ein guter Hinweis. Vielen Dank.

Ich habe nämlich schon darüber nachgedacht, nun durch die automatische Anwahl einen Dialog weniger anzuzeigen und dann hätte ich wieder ein Problem gehabt. So kenne ich nun durch deine Erläuterung die Zusammenhänge und ... *glücklich*
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz