Hallo,
der Titel sagt schon alles. Ich möchte einem Zebra p430i (einen Ausweisdrucker + Codierer) Escapesequenzen schicken.
Das ganze funktioniert auch in Delphi 7 wunderbar. Der Drucker macht das was ich ihm Befehle. Verwende ich jedoch den gleichen Code in Delphi 2010, so wird zwar eine Karte eingezogen und bedruckt, aber er versteht irgendwie nicht welche Steuer-Sequenz ich ihm mitgeteilt habe. Er druckt immer das gleiche, eine leere Karte.
Ich verwende bei beiden Versionen folgenden Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| TPassThroughData = record nLen: Word; Data: array[0..255] of Byte;
...
procedure TForm2.btn2Click(Sender: TObject); procedure PrintText(s: AnsiString); var PTBlock: TPassThroughData; begin PTBlock.nLen := Length(s); StrPCopy(@PTBlock.Data, s); Escape(Printer.Handle, PASSTHROUGH, 0, @PTBlock, nil); end;
begin
Printer.BeginDoc; PrintText(chr(27)+AnsiString('MC')+chr(13)); Printer.EndDoc;
end; |
Kann mir jemand sagen warum es unter D2010 nicht funktioniert aber unter D7? Dachte es läge evtl. an UTF8, da D7 ja noch nicht UTF8 hatte. Ansistring hat aber auch nix gebracht irgendwie....
Wäre nett, wenn mir jemand einen Tip geben könnte woran das liegen könnte.
Vielen Dank.
mc
Moderiert von
Narses: Topic aus Windows API verschoben am Mi 20.07.2011 um 15:44