Hallo,
Ich habe es geschafft noch mal in meine alten Sourcen zu schauen. Tatsächlich habe ich damals nicht nur die kopierte (
Vcl.)Printer.pas anders benannt, sonder auch die Klassen, Typen und Konstanten umbenannt. Eigentlich sieht mir das jetzt mehr wie nachprogrammiert (was ich heute nicht mehr machen würde) aus.
Wenn man auf das TPrinter. PageNumber verzichten kann, ist Peter’s Variante mitunter einfacher. Es kommt auf die Umgebung an.
Ich bin jetzt noch auf eine Idee gekommen um das Problem mit abhängigen Units zu umgehen.
Delphi-Quellcode:
unit Vcl.Printers.Help;
interface
uses
System.Classes;
var
OnPrinterBetweenPage: TNotifyEvent;
implementation
end.
Delphi-Quellcode:
unit Vcl.Printers;
...
implementation
uses
...
Vcl.Consts,
Vcl.Printers.Help;
...
procedure TPrinter.NewPage;
begin
CheckPrinting(True);
EndPage(
DC);
if Assigned(OnPrinterBetweenPage)
then
OnPrinterBetweenPage(self);
StartPage(
DC);
Inc(FPageNumber);
Canvas.Refresh;
end;
Damit bleibt der Interface-Abschnitt von
Vcl.Printers
unverändert. Man würde dann vor dem Drucken dem
OnPrinterBetweenPage
eine Methode zuweisen und in dieser wenn nötig das Umschalten der Ausrichtung erledigen.
einbeliebigername.
Mit freundlichen Grüßen, einbeliebigername.