Delphi-PRAXiS
Seite 3 von 9     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Kassenlade öffnen (https://www.delphipraxis.net/180831-kassenlade-oeffnen.html)

Natcree 23. Jun 2014 17:11

AW: Kassenlade öffnen
 
ja aber ist doof weil er E p 1t 2t als string mit ausdruckt was kann ich dagegen machen. brauchst du vielleicht den code schnippsel?

implementation 23. Jun 2014 20:13

AW: Kassenlade öffnen
 
Das Escape-Zeichen bekommst du mit #27, und dann hängst du das p hinterher:
Delphi-Quellcode:
#27'p'
Sollte den gewünschten Effekt von dem haben, was im Handbuch deiner Kassenlade als "ESC p" beschrieben wird.

Natcree 23. Jun 2014 21:24

AW: Kassenlade öffnen
 
Danke werde es morgen gleich versuchen

noisy_master 24. Jun 2014 11:20

AW: Kassenlade öffnen
 
Hi,

nachdem ich dann auch schon viele hilfreiche Tricks hier aus dem Forum bekommen habe möchte ich auch endlich gerne mal helfen ;-))

SO mache ich es:

Delphi-Quellcode:
procedure OpenCashDrawer;
var
  hPrinter, hDeviceMode: THandle;
  N: DWORD;
  DocInfo1: TDocInfo1;
  Device, Driver, Port: array [0 .. 255] of Char;
  PrinterName, ThePrinter: string;
  Code: AnsiString;
begin
  begin
    Code := AnsiChar(27) + AnsiChar(112) + AnsiChar(0) + AnsiChar(64) + AnsiChar(240);

    Printer.PrinterIndex := Printer.Printers.IndexOf('Name deines druckers');
    Printer.GetPrinter(Device, Driver, Port, hDeviceMode);
    PrinterName := Format('%s', [Device]);
    if not WinSpool.OpenPrinter(PChar(PrinterName), hPrinter, nil) then
    begin
      ShowMessage('Error : ' + IntToStr(GetLastError));
      Exit;
    end;
    with DocInfo1 do
    begin
      pDocName := 'Test';
      pOutputFile := nil;
      pDataType := 'RAW';
    end;
    WinSpool.StartDocPrinter(hPrinter, 1, @DocInfo1);
    WinSpool.StartPagePrinter(hPrinter);
    WinSpool.WritePrinter(hPrinter, PAnsiChar(Code), Length(Code), N);
    WinSpool.EndPagePrinter(hPrinter);
    WinSpool.EndDocPrinter(hPrinter);
    WinSpool.ClosePrinter(hPrinter);
  end;
end;
Hope it helps!

P.S.: geht bestimmt eleganter, aber....

himitsu 24. Jun 2014 12:09

AW: Kassenlade öffnen
 
Falls das lpszDatatype auch '' sein kann, dann vielleicht so: :gruebel:
Delphi-Quellcode:
Code := AnsiChar(27) + AnsiChar(112) + AnsiChar(0) + AnsiChar(64) + AnsiChar(240);
Printer.PrinterIndex := Printer.Printers.IndexOf('Name deines druckers');
Printer.BeginDoc;
//Printer.NewPage;
WritePrinter(Printer.Handle, PAnsiChar(Code), Length(Code), N);
Printer.EndDoc;

Natcree 24. Jun 2014 12:19

AW: Kassenlade öffnen
 
leider passiert nichts mit deinem code

noisy_master 24. Jun 2014 14:05

AW: Kassenlade öffnen
 
Blöde Frage:

hast du auch 'Name deines Druckers' in den richtigen Namen(so wie er in Windows angezeigt wird) geändert?

Gruß
Dirk

Natcree 24. Jun 2014 14:16

AW: Kassenlade öffnen
 
ja habe ich :(

himitsu 24. Jun 2014 14:27

AW: Kassenlade öffnen
 
Meintest du jetzt "meinen" oder seinen Code?

Natcree 24. Jun 2014 14:29

AW: Kassenlade öffnen
 
seinen code nicht deinen


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr.
Seite 3 von 9     123 45     Letzte »    

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