AGB  ·  Datenschutz  ·  Impressum  







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

Kassenlade öffnen

Ein Thema von Natcree · begonnen am 21. Jun 2014 · letzter Beitrag vom 26. Jun 2014
Antwort Antwort
Seite 1 von 2  1 2      
arnof

Registriert seit: 25. Apr 2013
1.261 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

AW: Kassenlade öffnen

  Alt 25. Jun 2014, 07:03
Auf die Gefahr hin mich zu wiederholen Schau dir die Beispiele hier im Forum an!

Nix Printer.xxx es muss direkt mit dem Drucker kommuniziert werden!
  Mit Zitat antworten Zitat
arnof

Registriert seit: 25. Apr 2013
1.261 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: Kassenlade öffnen

  Alt 25. Jun 2014, 09:53
Deine Schublade öffnet z.Z. nur weil Du das im Druckertreiber eingestellt hast: dein Programm geht nicht!

Die Öffnet auch, wenn Du "Hallo Welt" zum Drucker schickst
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#3

AW: Kassenlade öffnen

  Alt 25. Jun 2014, 11:53
Es sollte viellecht erst einmal eine Entscheidung getroffen werden, ob jetzt über die COM Schnittstelle direkt, oder über den offenbar vorhandenen Druckertreiber kommuniziert werden soll. Das sollte auf keinen Fall vermischt werden!
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Kassenlade öffnen

  Alt 25. Jun 2014, 11:57
am besten direkt die com schnittstelle.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#5

AW: Kassenlade öffnen

  Alt 25. Jun 2014, 12:08
Dann sind alle Zeilen, die in irgend einer Weise "Printer." beinhalten schon mal passé, und du brauchst eine Dokumentation über das Protokoll, dass der Drucker erwartet. Sonst bleibt's hier beim Rätselraten.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Kassenlade öffnen

  Alt 25. Jun 2014, 12:11
programming guide und die ganzen ASCII codes habe ich
um die kassenlade zu öffnen soll dieser ASCII code genommen werden ESC p m t1 t2

Geändert von Natcree (25. Jun 2014 um 12:13 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.882 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Kassenlade öffnen

  Alt 25. Jun 2014, 12:13
Dann nimm besser eine Seriell-Komponente und kommuniziere direkt über den COM-Port des Druckers.
Markus Kinzler
  Mit Zitat antworten Zitat
arnof

Registriert seit: 25. Apr 2013
1.261 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

AW: Kassenlade öffnen

  Alt 25. Jun 2014, 13:03
programming guide und die ganzen ASCII codes habe ich
um die kassenlade zu öffnen soll dieser ASCII code genommen werden ESC p m t1 t2
der String ist folgender:

s:=#27+'p'+#48'pz';

t1 und t2 sind Zeiten in msec die für Steuerung die die Schublade entriegelt wird, die Werte muss man ggf mal testen, je nach Hardware
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.494 Beiträge
 
Delphi 12 Athens
 
#9
  Alt 25. Jun 2014, 13:37
@Natcree

Der Record ist falsch deklariert.
Natürlich funktioniert das nur, wenn ein Druckertreiber für diesen Drucker vorhanden ist und dieser auch PassThrough unterstützt.
In deinem Beispiel muss der Drucker auch noch als Standard ausgewählt sein.
Delphi-Quellcode:
type
  TPassThroughData = record
    nLen : Word;
    Data : array[0..255] of Byte;
  end;

function PrinterSupport(APrinter: TPrinter; ACommand: Integer): Boolean;
begin
  Result := (Escape(APrinter.Canvas.Handle, QUERYESCSUPPORT, SizeOf(ACommand), @ACommand, nil) > 0);
end;

function DirectPrint(APrinter: TPrinter; const s: AnsiString): Boolean;
var
  PTBlock : TPassThroughData;
begin
  Result := (Length(s) < 256);
  if Result then
  begin
    PTBlock.nLen := Length(s);
    StrPCopy(@PTBlock.Data, s);
    Escape(APrinter.Handle, PASSTHROUGH, 0, @PTBlock, nil);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Printer.BeginDoc;
  try
    if PrinterSupport(Printer, PASSTHROUGH) then
      DirectPrint(Printer, {...hier Zeichenkette für den Drucker übergeben...});
  finally
    Printer.EndDoc;
  end;
end;
  Mit Zitat antworten Zitat
Natcree

Registriert seit: 5. Mär 2013
502 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: Kassenlade öffnen

  Alt 25. Jun 2014, 17:58
blup mit deinen code öffnet er Aber schiebt einen 2 cm streiffen aus dem thermaldrucker raus und cuttet ihn.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz