Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Setsames Verhalten von TFileStream (https://www.delphipraxis.net/25015-setsames-verhalten-von-tfilestream.html)

saschab 29. Jun 2004 21:22


Setsames Verhalten von TFileStream
 
Hallo zusammen,
ich habe mit folgendem Code meine Probleme und hoffe ihr könnt mir helfen :

Delphi-Quellcode:
Procedure Tfrm_main.SendtoPrinter(var Stream: TFileStream; var PrintStr: String);
begin
  CharToOEM(@Printstr[1], @Printstr[1]);
  Stream.write(PrintStr[1], length(Printstr)+1);
end;


procedure Tfrm_main.btn_print_labelClick(Sender: TObject);
var
   Stream: TFileStream;
   temp : String;
begin
  Stream := TFileStream.Create('LPT1', fmOpenWrite);
  temp := memo_test.Text;
  sendtoprinter(Stream, temp);
end;
Dieser Code soll die Steuersequenzen aus dem memo_test Memofeld an den Drucker senden.
Mein Problem ist nun Drücke ich den Knopf passiert nichts. :gruebel: Sobald ich aber meine Anwendung schliesse, Druckt er das Label aus das mit den Steuersequenzen generiert wurde (Barecode).
Weis vielleicht jemand wie ich es erreichen kann das er die Daten sofort sendet (das Label Druckt).


Ich bin total am Verzweifeln HILFE :wall:

Christian Seehase 29. Jun 2004 21:26

Re: Setsames Verhalten von TFileStream
 
Moin Sascha,

ich vermute mal, dass es daran liegt, dass Du die Datei nicht schliesst.
Nach dem SendToPrinter fehlt noch ein FreeAndNil(Stream), und wenn Du das Programm beendest geschieht das automatisch.
Ausserdem solltest Du das ganze in den üblichen Resourcenschutzblock einbinden.

Delphi-Quellcode:
begin
  Stream := TFileStream.Create('LPT1', fmOpenWrite);
  try
    temp := memo_test.Text;
    sendtoprinter(Stream, temp);
  finally
    FreeAndNil(Stream);
  end;
end;
BTW: Belegte Resourcen sollte man auch immer wieder gezielt freigeben.

[EDIT]
TFileStream verhält sich also völlig korrekt ;-)
[/EDIT]

SirThornberry 29. Jun 2004 21:27

Re: Setsames Verhalten von TFileStream
 
eventuell liegts daran das du den Stream nicht freigibst und dieser eben erst dann beim schließen freigegeben wird und somit der vorgang abgeschlossen wird. Irgendwann hatte ich mal das gleiche problem wie du, weiß aber leider nicht mehr wie ichs gelöst hab.

saschab 29. Jun 2004 21:39

Re: Setsames Verhalten von TFileStream
 
Hi,
danke wede das morgen direkt mal ausprobieren.

saschab 30. Jun 2004 12:18

Re: Setsames Verhalten von TFileStream
 
Hi,
habe es eben getestet und es funktioniert. :lol:

DANKE !!!!!!!!!!!!!!!!!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:06 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