AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Kassenlade öffnen

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

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

AW: Kassenlade öffnen

  Alt 26. Jun 2014, 11:17
und wie kann ich den befehl jetzt an den Printer schicken?
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Kassenlade öffnen

  Alt 26. Jun 2014, 11:31
Sir Rufo hat nur das zusammengefasst was vorher schon genannt wurde.
Win32Check( WritePrinter( hPrinter, lpData, dwCount, dwBytesWritten ) );


Hier mußt Du Deine Daten eintragen (den zu druckenden String übergeben).


Gruß
K-H

Gut, Hardware lebt und ist böse, und Drucker sind zudem noch hinterhältig, aber soooo schlimm?
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Natcree

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

AW: Kassenlade öffnen

  Alt 26. Jun 2014, 11:54
steh gerade auf dem schlauch

welche codes soll ich nun verwenden?

die Zusammenfassung von sir rufo in die uses einbinden richtig?
was ist mit den Funktionen?

Delphi-Quellcode:
function GetGeneratePulseSequence( m, t1, t2:ansistring ): Ansistring;//hier sagt er missing parameter type
begin
   Result := Esc_p + m + t1 + t2;//incompatible typen string und integer
end;

function GetDefaultGeneratePulseSequence : AnsiString;
begin
   Result := GetGeneratePulseSequence( {m} Lade1, {t1} PulsDauer200ms, {t2} PulsDauer200ms );
end;
und das aufrufen in der buttonclick procedure

RawDataToPrinter( szPrinterName{1} : PChar;{2} lpData : PByte;{3} dwCount : Word );
{1} muss hier der printername rein?
{2} was muss hier rein?
{3} was muss hier rein?
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Kassenlade öffnen

  Alt 26. Jun 2014, 12:25
Ja so kann sie eingebunden werden.

Delphi-Quellcode:
function GetGeneratePulseSequence( m, t1, t2:ansistring ): Ansistring;//hier sagt er missing parameter type
 begin
    Result := Esc_p + m + t1 + t2;//incompatible typen string und integer
 end;
 
function GetDefaultGeneratePulseSequence : AnsiString;
 begin
    Result := GetGeneratePulseSequence( {m} Lade1, {t1} PulsDauer200ms, {t2} PulsDauer200ms );
 end;
Hiermit werden die Daten generiert die an den Drucker gehen.

also Druckstring:=GetDefaultGeneratePulseSequence; {1} Ja, hier kommt der Druckername rein
{2} Mit der Zeigerwurschtelei kenn ich mich nicht so gut aus, ich nehme an ein @Druckstring[1] könnte reichen, vllt auch ein pansichar(Druckstring);
{3} length(Druckstring) ggf. solltest Du Dir einmal die Daten anzeigen, die ankommen:
aus dem Programming Guide für den t798
Zitat:
Enable or disable data scope mode
The data scope mode test prints a hexadecimal dump of all data sent to the printer: “1” prints as hexadecimal 31, “A” as hexadecimal 41 and so on. This helps troubleshoot communication problems and runs during a normal application (after being enabled through printer configuration).
Note: Data scope mode is usually considered a level 1 diagnostic test.
Data scope mode is enabled and disabled by selecting the “Diagnostic Modes” sub-menu of the configuration menu.
Press the paper feed button as instructed on the “Diagnostic Modes Menu” to enable or disable the data scope mode test.
• Off, normal mode (Data scope mode disabled)
• Data scope mode (enabled)
Note: Press the paper feed button for at least one second to validate the selection.
To run the data scope mode:
1 After you have enabled the data scope mode, exit the configuration menu.
2 Run a transaction from the host computer.
All commands and data sent from the host computer will be printed as hexadecimal characters as shown in the illustration.
To exit the data scope mode:
1 Enter the configuration menu again.
See “Configuring the printer.”
2 Disable the data scope mode.
3 Exit the configuration menu.
The printer is on-line and can communicate normally with the host computer.
For more
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Natcree

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

AW: Kassenlade öffnen

  Alt 26. Jun 2014, 12:44
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
RawDataToPrinter( 'CognitiveTPG Receipt',GetDefaultGeneratePulseSequence, length(GetDefaultGeneratePulseSequence) );//hier sagt er mir incompatible type string und pbyte
end;
  Mit Zitat antworten Zitat
arnof

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

AW: Kassenlade öffnen

  Alt 26. Jun 2014, 12:57
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
RawDataToPrinter( 'CognitiveTPG Receipt',GetDefaultGeneratePulseSequence, length(GetDefaultGeneratePulseSequence) );//hier sagt er mir incompatible type string und pbyte
end;
Sorry,

Du solltest lieber mal einen Programmierer suchen

Außer Copy und Paste wird das wohl nichts.

Das Beispiel auf dem Link war fix und fertig bis auf dem Namen des Druckers, der in einer Struktur stand, dahinter war das aber Kommentiert, so das man nur seinen Namen dort hinschreiben musste
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.494 Beiträge
 
Delphi 12 Athens
 
#7

AW: Kassenlade öffnen

  Alt 26. Jun 2014, 13:30
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
RawDataToPrinter( 'CognitiveTPG Receipt',GetDefaultGeneratePulseSequence, length(GetDefaultGeneratePulseSequence) );//hier sagt er mir incompatible type string und pbyte
end;
Du musst das Ergebnis von GetDefaultGeneratePulseSequence einer Variablen zuweisen.
RawDataToPrinter erwartet als Parameter die Adresse einer Speicherstelle(Variable) und die Größe der Speicherstelle(Anzahl Byte).
Delphi-Quellcode:
var
  lData: AnsiString;
begin
  lData := GetDefaultGeneratePulseSequence;
  RawDataToPrinter('CognitiveTPG Receipt', Pointer(lData), Length(lData));
end;
Edit:
Ob dein Drucker natürlich so heist, kannst nur du wissen...
Edit:
Im Prinzip passiert hier das selbe wie im Beispiel mit PASSTHROUGH.
Ist die von GetDefaultGeneratePulseSequence erzeugte ESC-Sequenz korrekt, funtkionieren vermutlich beide Wege.

Geändert von Blup (26. Jun 2014 um 13:40 Uhr)
  Mit Zitat antworten Zitat
Natcree

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

AW: Kassenlade öffnen

  Alt 26. Jun 2014, 13:37
blup danke das war es jetzt klappt es

"Jungs" ihr seit einfach spitze ich danke euch
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:23 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