Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi JEDI - JCL -Nach Einlesen der Paperbins kein Landscape-Druck (https://www.delphipraxis.net/91580-jedi-jcl-nach-einlesen-der-paperbins-kein-landscape-druck.html)

bernau 7. Mai 2007 11:52


JEDI - JCL -Nach Einlesen der Paperbins kein Landscape-Druck
 
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

bernau 8. Mai 2007 22:00

Re: JEDI - JCL -Nach Einlesen der Paperbins kein Landscape-D
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:47 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