AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi JEDI - JCL -Nach Einlesen der Paperbins kein Landscape-Druck
Thema durchsuchen
Ansicht
Themen-Optionen

JEDI - JCL -Nach Einlesen der Paperbins kein Landscape-Druck

Ein Thema von bernau · begonnen am 7. Mai 2007 · letzter Beitrag vom 8. Mai 2007
Antwort Antwort
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#1

JEDI - JCL -Nach Einlesen der Paperbins kein Landscape-Druck

  Alt 7. Mai 2007, 11:52
Hi,


kurze Frage:

Kann jemand diesen Fehler nachvollziehen.


Delphi-Quellcode:
procedure TForm2.BitBtn1Click(Sender: TObject);
var
  JclPrintSet:TJclPrintSet;
begin
  JclPrintSet:=TJclPrintSet.Create;
  JclPrintSet.GetBinSourceList(CbSchacht.Items);
  CbSchacht.ItemIndex:=JclPrintSet.BinIndex;
  JclPrintSet.Free;
  // jetzt sollte eigendlich Landscape gedruckt werden. Tut's aber nicht.
  printer.Orientation:=poLandscape;
  printer.BeginDoc;
  printer.Canvas.textout(0,0,'Ein Test');
  printer.EndDoc;
end;
Sobald ich einmal GetBinSourceList aufgerufen habe, ist es nicht mehr möglich die orientation auf poLandscape zu setzen. Es wird immer portrait gedruckt.

Version der JCL ist 1.99



Gerd
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: JEDI - JCL -Nach Einlesen der Paperbins kein Landscape-D

  Alt 8. Mai 2007, 22:00
Ich habe den Fehler gefunden.

Für, die's interessiert. In der Datei JclPrint eine Zeile auskommentieren.


Delphi-Quellcode:
procedure TJclPrintSet.SetDeviceMode(Creating: Boolean);
var
  Res: TPoint;
begin
  Printer.GetPrinter(FDevice, FDriver, FPort, FHandle);
  if FHandle = 0 then
  begin
    Printer.PrinterIndex := Printer.PrinterIndex;
    Printer.GetPrinter(FDevice, FDriver, FPort, FHandle);
  end;
  if FHandle <> 0 then
  begin
    FDeviceMode := GlobalLock(FHandle);
    FPrinter := Printer.PrinterIndex;
    FDeviceMode^.dmFields := dm_Orientation or dm_PaperSize or
      dm_PaperLength or dm_PaperWidth or
      dm_Scale or dm_Copies or
      dm_DefaultSource or dm_PrintQuality or
      dm_Color or dm_Duplex or
      dm_YResolution or dm_TTOption;
    UpdateDeviceMode;
    //******************************************************************
    // Dieser Aufruf bewirkt, das die Orientation nicht
    // mehr geändert werden kann. Dehalb habe ich dies
    // auskommentiert.
    //
    // FDeviceMode^.dmFields := 0;
    //
    //******************************************************************
    SetBinArray;
    SetPaperArray;
  end
  else
  begin
    FDeviceMode := nil;
    if not Creating then
      raise EJclPrinterError.CreateRes(@RsDeviceMode);
    FPrinter := -99;
  end;

  Res := GetPrinterResolution;
  dpiX := Res.X;
  dpiY := Res.Y;
  if FHandle <> 0 then
    GlobalUnLock(FHandle);
end;

Gerd
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  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 04:11 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