AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein TPrinter: Portrait auf Landscape umzuschalten

TPrinter: Portrait auf Landscape umzuschalten

Ein Thema von tomkupitz · begonnen am 29. Jun 2019 · letzter Beitrag vom 14. Nov 2021
Antwort Antwort
Seite 1 von 2  1 2   
tomkupitz

Registriert seit: 26. Jan 2011
355 Beiträge
 
Delphi 12 Athens
 
#1

AW: TPrinter: Portrait auf Landscape umzuschalten

  Alt 30. Jun 2019, 17:23
Ich habe mal Folgendes in Printers.pas eingebaut:

Delphi-Quellcode:
    procedure NewPage;
    procedure BeginNewPage;
    procedure EndNewPage;

...

[PrintingPermission(SecurityAction.LinkDemand, Level=PrintingPermissionLevel.AllPrinting)]
procedure TPrinter.NewPage;
begin
  CheckPrinting(True);
  EndPage(DC);
  StartPage(DC);
  Inc(FPageNumber);
  Canvas.Refresh;
end;

[PrintingPermission(SecurityAction.LinkDemand, Level=PrintingPermissionLevel.AllPrinting)]
procedure TPrinter.BeginNewPage;
begin
  StartPage(DC);
  Inc(FPageNumber);
  Canvas.Refresh;
end;

[PrintingPermission(SecurityAction.LinkDemand, Level=PrintingPermissionLevel.AllPrinting)]
procedure TPrinter.EndNewPage;
begin
  CheckPrinting(True);
  EndPage(DC);
end;
Leider erhalte dabei die Fehlermeldung:

[dcc32 Fataler Fehler] Vcl.Printers.pas(1550): F2613 Unit 'Vcl.Dialogs' nicht gefunden.
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.654 Beiträge
 
Delphi 12 Athens
 
#2

AW: TPrinter: Portrait auf Landscape umzuschalten

  Alt 30. Jun 2019, 17:46
Leider erhalte dabei die Fehlermeldung:

[dcc32 Fataler Fehler] Vcl.Printers.pas(1550): F2613 Unit 'Vcl.Dialogs' nicht gefunden.
Dann binde doch die VCL.Dialogs unter uses mit ein.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
tomkupitz

Registriert seit: 26. Jan 2011
355 Beiträge
 
Delphi 12 Athens
 
#3

AW: TPrinter: Portrait auf Landscape umzuschalten

  Alt 30. Jun 2019, 18:04
Zitat:
Dann binde doch die VCL.Dialogs unter uses mit ein.
1. Warum, bei diesen Änderungen?
2. Ich erhalte dann den Fehler: Zu wenig Arbeitsspeicher.
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.654 Beiträge
 
Delphi 12 Athens
 
#4

AW: TPrinter: Portrait auf Landscape umzuschalten

  Alt 30. Jun 2019, 18:13
1. Warum, bei diesen Änderungen?
Hast du vielleicht einen Öffnen/Speichern Dialog noch mit eingebaut?
Klicke doch auf die Fehlermeldung. Dann wirst du sehen, in welcher Zeile da etwas fehlt.

2. Ich erhalte dann den Fehler: Zu wenig Arbeitsspeicher.
Dafür habe ich keine Erklärung, aber vielleicht reicht es, Delphi oder den Rechner neu zu starten.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
tomkupitz

Registriert seit: 26. Jan 2011
355 Beiträge
 
Delphi 12 Athens
 
#5

AW: TPrinter: Portrait auf Landscape umzuschalten

  Alt 30. Jun 2019, 18:45
Zitat:
Hast du vielleicht einen Öffnen/Speichern Dialog noch mit eingebaut?
Nein, nur gezeigten Code.

Zitat:
Klicke doch auf die Fehlermeldung. Dann wirst du sehen, in welcher Zeile da etwas fehlt.
Fehlerzeile ist letzte Printers.pas Zeile -> end.
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.654 Beiträge
 
Delphi 12 Athens
 
#6

AW: TPrinter: Portrait auf Landscape umzuschalten

  Alt 30. Jun 2019, 19:10
Wie ist DC deklariert?
EndPage(DC);
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#7

AW: TPrinter: Portrait auf Landscape umzuschalten

  Alt 30. Jun 2019, 19:49
Das Problem ist ganz woanders ...

In der Vcl.Dialogs wird die Unit Vcl.Printers verwendet. Da aber jetzt das Interface der Unit Vcl.Printers verändert wurde (neue Methoden) kommt der Kompiler/Linker damit nicht mehr klar (weil die vorkompilierte Vcl.Dialogs verwendet wird) und produziert diesen seltsamen Fehler.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.474 Beiträge
 
Delphi 12 Athens
 
#8

AW: TPrinter: Portrait auf Landscape umzuschalten

  Alt 1. Jul 2019, 14:18
Moin...
Zitat:
gibt es eine Möglichkeit innerhalb eines Druckauftrages von Portrait auf Landscape umzuschalten?
In den heutigen Zeiten von FastReport (in Delphi dabei und hat mit der Problemstellung keine Probleme ) und Co. auf TPrinter zurückzugreifen ist imho "OldSchool" Wäre ein Reportgenenerator eine Alternative?
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
727 Beiträge
 
Delphi 12 Athens
 
#9

AW: TPrinter: Portrait auf Landscape umzuschalten

  Alt 1. Jul 2019, 10:04
Ich habe mal Folgendes in Printers.pas eingebaut:
Mach das nicht, es ist nie eine gute Idee, eine der Delphi source files direkt zu verändern. Das führt zu Problemen mit anderen RTL/VCL units, die dann eventuell auch neu kompiliert werden müssen, was dann nur geht, wenn Du die Verzeichnisse mit den Sourcefiles in den search path mit aufnimmst, was dann eine ganze Lawine von anderen Versionkonflikten nach sich ziehen kann.

Mach eine Kopie der vcl.printer.pas Datei und benenne die Unit um. Modifiziere diese Datei und verwende sie dann anstelle von vcl.printers in deinem Projekt.
Peter Below
  Mit Zitat antworten Zitat
tomkupitz

Registriert seit: 26. Jan 2011
355 Beiträge
 
Delphi 12 Athens
 
#10

AW: TPrinter: Portrait auf Landscape umzuschalten

  Alt 1. Jul 2019, 10:25
vcl.printer.pas ist natürlich eine Kopie im lokalen Projektverzeichnis. Originale Units ändere ich nie.

Aber die Probleme mit der vcl.printer.pas-Kopie sind so einfach nicht lösbar.

Peter: Ich werde mir mal dein Beispiel ansehen.

Danke an alle und beste Grüße
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:43 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