AGB  ·  Datenschutz  ·  Impressum  







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

Printer.Title fehlerhaft?

Ein Thema von haentschman · begonnen am 9. Mär 2016 · letzter Beitrag vom 11. Mär 2016
Antwort Antwort
Benutzerbild von haentschman
haentschman

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

Printer.Title fehlerhaft?

  Alt 9. Mär 2016, 10:42
Delphi-Version: 10 Seattle
Hallöle...

Heute ist mir etwas Merkwürdiges aufgefallen.
Delphi-Quellcode:
procedure TMyPrinter.PrintIt;
begin
  Printer.Title := Title;
  Printer.BeginDoc;
  try
.
.
  finally
    Printer.EndDoc;
  end;
end;
Nach dem Programmstart beim ersten Drucken wird zwar der Title zugewiesen, aber sowohl im PDF Creator als auch in der Druckwarteschlange nicht angezeigt. Wenn ich nun gleich danach etwas anderes drucke (Title geändert) erscheint der vorhergehende Title im PDF Creator bzw. Warteschlange.

Hat jemand eine Info dazu? (Windows 10)

Danke

Geändert von haentschman ( 9. Mär 2016 um 14:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Printer.Title fehlerhaft?

  Alt 9. Mär 2016, 11:05
Schau mal in TPrinter.BeginDoc (irgendwas.Printers.pas) rein.
Dort wird der Wert des Property Title genommen und direkt an MSDN-Library durchsuchenStartDoc übergeben.

Wenn das immernoch so ist, dann kann das eigentlich nicht die Schuld vom Delphi sein, denn was kann Emba da schon falsch machen?


[add] Allerdings vernachlässigt BorCodEro fahrlässig sämtliche Fehlerbehandlung, wie z.B. die Auswertung des Results von StartDoc. (zumindestens in XE)
$2B or not $2B

Geändert von himitsu ( 9. Mär 2016 um 11:13 Uhr)
  Mit Zitat antworten Zitat
TomF

Registriert seit: 29. Sep 2015
Ort: Österreich, Innviertel
25 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Printer.Title fehlerhaft?

  Alt 9. Mär 2016, 13:58
Mit einem Application.Processmessages direkt nach dem setzen des Printer.Title und vor dem BeginDoc sollte das funktionieren...
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

AW: Printer.Title fehlerhaft?

  Alt 9. Mär 2016, 14:04
Zitat:
Mit einem Application.Processmessages direkt nach dem setzen des Printer.Title und vor dem BeginDoc sollte das funktionieren...
...leider nicht. Aber trotzdem Glückwunsch zum ersten Beitrag nach der Anmeldung...
Zitat:
Wenn das immernoch so ist, dann kann das eigentlich nicht die Schuld vom Delphi sein, denn was kann Emba da schon falsch machen?
Nun ja, ich tippe ja auch auf W10. Kann das jemand vieleicht bestätigen?
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

AW: Printer.Title fehlerhaft?

  Alt 11. Mär 2016, 13:40
Moin...
...hochhol wegen fehlender Lösung.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Printer.Title fehlerhaft?

  Alt 11. Mär 2016, 14:57
Mit Seattle getestet und es funktioniert (W8.1 x64, W10 x64) mit dem Code wie gewünscht.

Ich verwende aber auch den - in meinen Augen korrekten - Code
Delphi-Quellcode:
Printer.Title := 'Some Title';
Printer.BeginDoc;
try
  ...
  Printer.EndDoc;
except
  Printer.Abort;
  raise;
end;
@TomF

Ich sehe nicht wie ein Application.ProcessMessages hier helfen könnte.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
TomF

Registriert seit: 29. Sep 2015
Ort: Österreich, Innviertel
25 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Printer.Title fehlerhaft?

  Alt 11. Mär 2016, 20:15
Hi Sir Rufo,

klar, dein Code ist richtig und so verwende ich ihn auch. Ich hatte aber doch das beschriebene Problem, dass der Printer.Title nicht zuverlässig oder erst beim nächsten DruckJob angezeigt wurde.

Dann fand ich irgendwo(?) den Hinweis, dass eben dieses
Code:
Application.ProcessMessages
Abhilfe schaffen kann.

Ich füge seither diese Zeile dort immer ein und es funktioniert zuverlässig.
Ob und warum das helfen sollte, habe ich eigentlich nie hinterfragt.

Schade - mein erster Eintrag hier war also eine Niete...
Thomas
  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 10:19 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