Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Hardware ansteuern (https://www.delphipraxis.net/171137-hardware-ansteuern.html)

Pfl 22. Okt 2012 18:17

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

RWarnecke 22. Okt 2012 18:28

AW: Hardware ansteuern
 
Um die Drucker auszulesen, habe ich eine OpenSource-Komponente TPrinterInfo erstellt. Damit kannst Du eigentlich fast alles von den installierten Druckern auf dem Rechner auslesen. Sollte noch etwas fehlen, dann melde Dich einfach bei mir. oder füge es selbst hinzu. Bei letzterem würde ich mich über eine kurze Nachricht freuen.

haentschman 22. Okt 2012 18:31

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:

Popov 22. Okt 2012 18:39

AW: Hardware ansteuern
 
Also das mit der Liste der Drucker könnte so aussehen:

Delphi-Quellcode:
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;
Vielleicht gibt es auch was besseres, kenn mich da kaum aus.

Bummi 22. Okt 2012 19:35

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;

Pfl 22. Okt 2012 21:08

AW: Hardware ansteuern
 
Hä?! Wie jetzt?

Popov 22. Okt 2012 21:35

AW: Hardware ansteuern
 
Die Rückfrage ist sehr aussagekräftig!

Pfl 22. Okt 2012 21:40

AW: Hardware ansteuern
 
Ich benötige von Bummis Quellcode eine OnClick-Methode:

Delphi-Quellcode:
procedure TForm9.BitBtn3Click(Sender: TObject);
begin

end;
end.
Ach ich vergaß: Vielen Dank für Deinen Code für die Druckerliste. Das habe ich gebraucht! :thumb:

Bummi 22. Okt 2012 21:58

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;

Pfl 22. Okt 2012 22:13

AW: Hardware ansteuern
 
Geht leider nicht.

Fehler: "Undeklarierterer Bezeichner : SendEscapeToPrinter".

:(


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 Uhr.
Seite 1 von 3  1 23      

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