AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Delphi 2009 Umstellung Drucker Steuercodes gehen nicht mehr
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 2009 Umstellung Drucker Steuercodes gehen nicht mehr

Ein Thema von Peter60 · begonnen am 27. Jul 2009 · letzter Beitrag vom 3. Aug 2010
Antwort Antwort
Peter60

Registriert seit: 17. Mär 2005
Ort: Im schönen Allgäu
66 Beiträge
 
Delphi 11 Alexandria
 
#1

Delphi 2009 Umstellung Drucker Steuercodes gehen nicht mehr

  Alt 27. Jul 2009, 17:34
Hallo, ich bin gerade dabei eine Anwendung von Delphi2007 auf Delphi2009 umzustellen.
Dabei bin ich auf ein Problem mit den POS Drucker gestoßen, um eine schnelle Druckausgabe
zu gewährleisten verwende ich Escape Sequenzen für die Ansteuerung des Druckers.

Diese funktionieren aber nicht in Delphi 2009.

Wer kennt da eine Lösung!

Peter60
http://www.delphipraxis.net/posting.php?mode=iframe
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Delphi 2009 Umstellung Drucker Steuercodes gehen nicht m

  Alt 27. Jul 2009, 17:57
POS Drucker? Über serielle Verbindung?

Kann es sein, dass du als Datentyp String benutzt? Dann bekommt der Drucker 2 Byte pro Zeichen. Versuch mal AnsiString.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
Peter60

Registriert seit: 17. Mär 2005
Ort: Im schönen Allgäu
66 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Delphi 2009 Umstellung Drucker Steuercodes gehen nicht m

  Alt 28. Jul 2009, 06:21
Hallo,
Der Drucker verfügt über eine USB Anschluss kann aber auch seriell angeschlossen werden.
Ich habe auch die Strings auf AnsiString umgestellt weil ich es mich schon gedacht habe.

Gruss
Peter60
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Delphi 2009 Umstellung Drucker Steuercodes gehen nicht m

  Alt 28. Jul 2009, 06:29
Zitat:
Ich habe auch die Strings auf AnsiString umgestellt weil ich es mich schon gedacht habe.
Und hat das etwas gebracht?
Markus Kinzler
  Mit Zitat antworten Zitat
Peter60

Registriert seit: 17. Mär 2005
Ort: Im schönen Allgäu
66 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Delphi 2009 Umstellung Drucker Steuercodes gehen nicht m

  Alt 28. Jul 2009, 06:52
Leider Nein!
Ich übergeben den String an ein TRichEdit dieser wird dann gedruckt ich vermute das das der Grund ist.

Kleiner Codeauszug
Hier werden die Druckersteuercode zugewiesen

Delphi-Quellcode:
Belegtext.Clear; // TRichEdit
Belegtext.Lines.Append(#27+#64); // Drucker initialisieren
Belegtext.Lines.Append(#27+#77+#48);
Belegtext.Lines.Append(#27+#82+#2); // Deutscher Zeichensatz //FKasse.Belegtext.Lines.Append('ÄÖÜßäöüß');
Belegtext.Lines.Append('Bla Bla');
DruckeRoh_String(Belegtext.Text, Drucker);
.....
Dann wird diese Procedure aufgerufen:
.....

Delphi-Quellcode:
procedure DruckeRoh_String(DruckText:AnsiString; Drucker :integer);
var Printer1 : array [0..255] of char;
    p : Integer;

  function RawDataToPrinter(const szPrinterName : Ansistring;
                            const data:Ansistring;
                            dwCount : DWORD) : boolean;
  var
    hPrinter : THandle;
    DocInfo : TDocInfo1;
    dwJOB : DWORD;
    dwBytesWritten : DWORD;
  begin
    Result := False;
    if OpenPrinter (pchar (szPrinterName), hPrinter, Nil) then
      try
        // Fill in the structure with info about this "document"
        DocInfo.pDocName := 'Belegdruck';
        DocInfo.pOutputFile := Nil;
        DocInfo.pDatatype := 'RAW';
        // Inform the spooler the document is beginning
        dwJob := StartDocPrinter (hPrinter, 1, @docInfo);
        if dwJob <> 0 then
          try
            if StartPagePrinter (hPrinter) then
              try
                if WritePrinter (hPrinter, Pchar(data), dwCount, dwBytesWritten) then
                  Result := dwBytesWritten = dwCount;
              finally
                EndPagePrinter (hPrinter)
              end
          finally
            EndDocPrinter (hPrinter);
          end
      finally
        ClosePrinter (hPrinter)
      end
  end; {RawDataToPrinter}

begin
  GetProfileString ('windows', 'device', ',,,', Printer1, Sizeof(Printer1));
  p := Pos (',', Printer1);
  if p > 0 then
    Printer1 [p - 1] := #0;

  RawDataToPrinter (Printer1, DruckText, length(DruckText));
end;
Peter60

[edit=mkinzler]Delphi-Tags eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Delphi 2009 Umstellung Drucker Steuercodes gehen nicht m

  Alt 28. Jul 2009, 06:54
Der RichEdit verwendet intern UniCode.
Markus Kinzler
  Mit Zitat antworten Zitat
Peter60

Registriert seit: 17. Mär 2005
Ort: Im schönen Allgäu
66 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Delphi 2009 Umstellung Drucker Steuercodes gehen nicht m

  Alt 28. Jul 2009, 19:05
Nur falls noch jemand das gleiche Problem hatte hier die Lösung!

Delphi-Quellcode:
Belegtext.Clear; // TRichEdit
Belegtext.Lines.Append(#27+#64); // Drucker initialisieren
Belegtext.Lines.Append(#27+#77+#48);
Belegtext.Lines.Append(#27+#82+#2); // Deutscher Zeichensatz //
Belegtext.Lines.Append('ÄÖÜßäöüß');
Belegtext.Lines.Append('Bla Bla');
Anstatt diese Zeile

DruckeRoh_String(Belegtext.Text, Drucker); diese Zeile
Delphi-Quellcode:

DruckeRoh_String(UTF8String(Belegtext.Text), Drucker);
dann funktionieren auch die Steuerzeichen beim Drucker


Trotzdem Danke für eure Hilfe

Peter60

[edit=mkinzler]Delphi-Tags eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
schmitt

Registriert seit: 3. Aug 2010
1 Beiträge
 
Delphi 2 Desktop
 
#8

AW: Delphi 2009 Umstellung Drucker Steuercodes gehen nicht mehr

  Alt 3. Aug 2010, 15:57
Vielen Dank
auch für mich war es die Lösung!
Gruß schmitt
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:49 Uhr.
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