AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi PrinterIndex gesetzt... trotzdem Standarddrucker
Thema durchsuchen
Ansicht
Themen-Optionen

PrinterIndex gesetzt... trotzdem Standarddrucker

Ein Thema von haentschman · begonnen am 27. Jun 2011 · letzter Beitrag vom 27. Jun 2011
Antwort Antwort
Benutzerbild von haentschman
haentschman

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

PrinterIndex gesetzt... trotzdem Standarddrucker

  Alt 27. Jun 2011, 07:22
Delphi-Version: XE
Moin...

Eher durch Zufall bin ich auf ein Problem gestoßen, weil ich mir nicht vorstellen konnte daß da etwas nicht funktionieren sollte.
Delphi-Quellcode:
procedure TdBK_Print.Print(Report: TfrxReport; Design, Dialog: Boolean);
begin
  if Report.PrepareReport(True) then
  begin
    Printer.PrinterIndex:= FPrinterID;
    Report.PrintOptions.ShowDialog:= Dialog;
    if Design then
      Report.DesignReport(True)
    else
      Report.Print;
  end;
end;
FPrinterID ist richtig gesetzt entsprechend einer Auswahl aus dem Drucker Dialog in den Einstellungen. Trotzdem kommen alle Ausdrucke auf dem Standarddrucker an

Was unter 2007 noch problemlos funktionierte geht unter XE nicht mehr ? Wo ist der Trick ?

Danke für Tipps...

Geändert von haentschman (27. Jun 2011 um 07:24 Uhr)
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#2

AW: PrinterIndex gesetzt... trotzdem Standarddrucker

  Alt 27. Jun 2011, 08:09
Ich kenne mich nicht im Detail mit dem Reportdesigner aus, aber evtl. setzt ein
Report.PrintOptions.ShowDialog:= Dialog; .
auch den Drucker zurück, wenn Dialog = False.

Ich würde mal versuchen, bei Dialog = False den PrinterIndex nochmal nach setzen der Property ShowDialog zuzuweisen.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

AW: PrinterIndex gesetzt... trotzdem Standarddrucker

  Alt 27. Jun 2011, 08:31
Hallo Satty67...

ein Versuch war es Wert... Ich habe die 2 Zeilen auch vertauscht. Leider ist kein positives Ergebnis zu verzeichnen.
Zum Zeitpunkt Report.Print ist der Inhalt von Printer.PrinterIndex so wie er sein soll

Danke
  Mit Zitat antworten Zitat
pHL

Registriert seit: 27. Mai 2011
83 Beiträge
 
Delphi XE2 Professional
 
#4

AW: PrinterIndex gesetzt... trotzdem Standarddrucker

  Alt 27. Jun 2011, 08:36
Ich kenn mich mit den Reports auch nicht gut aus, aber kann es sein dass du den Drucker so setzen musst:

Report.PrintOptions.Printer := FPrintId;

Mfg.
pHL
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

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

AW: PrinterIndex gesetzt... trotzdem Standarddrucker

  Alt 27. Jun 2011, 08:44
Danke erst mal...

Printer in PrintOptions ist ein String. Wenn ich mir den String über die ID aus Printer hole funktioniert das ganze...
Delphi-Quellcode:
procedure TdBK_Print.Print(Report: TfrxReport; Design, Dialog: Boolean);
begin
  if Report.PrepareReport(True) then
  begin
    Report.PrintOptions.ShowDialog:= Dialog;
    Report.PrintOptions.Printer:= Printer.Printers[FPrinterID];
    //Printer.PrinterIndex:= FPrinterID;
    if Design then
      Report.DesignReport(True)
    else
      Report.Print;
  end;
end;
Das erklärt aber immer noch nicht weshalb obiger Code unter 2007 via PrinterIndex funktioniert und unter XE nicht mehr...
  Mit Zitat antworten Zitat
pHL

Registriert seit: 27. Mai 2011
83 Beiträge
 
Delphi XE2 Professional
 
#6

AW: PrinterIndex gesetzt... trotzdem Standarddrucker

  Alt 27. Jun 2011, 08:48
Printer in PrintOptions ist ein String. Wenn ich mir den String über die ID aus Printer hole funktioniert das ganze...
Danke, habe ich nicht gewusst
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#7

AW: PrinterIndex gesetzt... trotzdem Standarddrucker

  Alt 27. Jun 2011, 09:53
Printer in PrintOptions ist ein String
Dann bleibt ja nur noch, das hier ein String falsch interpretiert wird (Ansi/Unicode), zumal das wohl auch zu 99% immer das Problem bei 2007 -> XE Portierungen der Fall sein wird.

Evtl. mal mit expliziter Konvertierung experimentieren. (bzw. wenn ich das richtig lese, ist es schon gelöst?)

Geändert von Satty67 (27. Jun 2011 um 09:56 Uhr)
  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 16:49 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