![]() |
Hardware ansteuern
Liste der Anhänge anzeigen (Anzahl: 1)
Liebe Community,
ich sitze leider im Moment tief in der Tinte; ich möchte in meine Software den Nutzer Einstellungen an der Hardware vornehmen lassen. Dabei soll Delphi alle verfügbaren Drucker in eine ComboBox einlesen und einen Testausdruck durchführen. Auch soll die Kundenanzeige, sofern vorhanden mit einem Beispieltext angesteuert werden: Text: "ApoPlus Apothekensystem 2010" "Umlaute ä,ö,ü,ß [Datum und Uhrzeit]". Ich habe leider überhaupt keine Ahnung, wie ich das anstellen könnte... :( Schwierig wird es dann auch bei der Kassenlade... Kann jemand helfen?? Vielen Dank und lieben Gruß im Voraus! Als Anhang ein Screenshot zum besseren Verständnis |
AW: Hardware ansteuern
Um die Drucker auszulesen, habe ich eine OpenSource-Komponente
![]() |
AW: Hardware ansteuern
Hallo...
da wirst du dich wohl oder übel mit TComPort z.B. auseinandersetzen müssen. :zwinker: Sowohl die Kassenschublade als auch das Display arbeiten damit und wenn es über einen virtuellen ComPort ist. Desweiteren mußt du dich mit den verschiedenen Modellen und deren Bedienungsanleitungen vertraut machen. Jedes arbeitet anders... :zwinker: |
AW: Hardware ansteuern
Also das mit der Liste der Drucker könnte so aussehen:
Delphi-Quellcode:
Vielleicht gibt es auch was besseres, kenn mich da kaum aus.
uses
Printers; procedure TForm1.Button1Click(Sender: TObject); var p: TPrinter; begin p := TPrinter.Create; try ComboBox1.Items.Assign(p.Printers) finally p.Free; end; end; |
AW: Hardware ansteuern
Für die Kassenladen gibt es üblicherweise String welche man per Escape schicken kann
Delphi-Quellcode:
function SendEscapeToPrinter(const PrinterName: String; Const S: AnsiString): Boolean;
type TPrnBuffRec = record bufflength: Word; Buff_1: array [0 .. 255] of AnsiChar; end; var Buff: TPrnBuffRec; TestInt: Integer; OldIndex: Integer; begin OldIndex := Printer.PrinterIndex; try Result := Printer.printers.IndexOf(PrinterName) > -1; Printer.PrinterIndex := Printer.printers.IndexOf(PrinterName); Printer.BeginDoc; TestInt := PassThrough; if Escape(Printer.Handle, QUERYESCSUPPORT, SizeOf(TestInt), @TestInt, nil) > 0 then begin StrPCopy(Buff.Buff_1, S); Buff.bufflength := StrLen(Buff.Buff_1); Escape(Printer.Canvas.Handle, PassThrough, 0, @Buff, nil); Result := True; Printer.EndDoc; end else Result := False; finally Printer.PrinterIndex := OldIndex; end; end; |
AW: Hardware ansteuern
Hä?! Wie jetzt?
|
AW: Hardware ansteuern
Die Rückfrage ist sehr aussagekräftig!
|
AW: Hardware ansteuern
Ich benötige von Bummis Quellcode eine OnClick-Methode:
Delphi-Quellcode:
Ach ich vergaß: Vielen Dank für Deinen Code für die Druckerliste. Das habe ich gebraucht! :thumb:
procedure TForm9.BitBtn3Click(Sender: TObject);
begin end; end. |
AW: Hardware ansteuern
Delphi-Quellcode:
procedure TForm9.BitBtn3Click(Sender: TObject);
begin if SendEscapeToPrinter('Wie auch immer Dein Drucker heißt','Der Kassenschubladenöffnungssttring aus dem Herstellerhandbuch') then Showmessage('Jetzt sollte die Schublade auf sein ....') end; |
AW: Hardware ansteuern
Geht leider nicht.
Fehler: "Undeklarierterer Bezeichner : SendEscapeToPrinter". :( |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 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