Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Konzeptfrage Drucken mit Rückmeldung Async Pro (https://www.delphipraxis.net/112564-konzeptfrage-drucken-mit-rueckmeldung-async-pro.html)

WIng2005 23. Apr 2008 14:10


Konzeptfrage Drucken mit Rückmeldung Async Pro
 
Hallo Gemeinde,

verzweifel total ein einem (hoffentlich) simplen Problem:

Ich möchte eine Bestimmte Anzahl an Druckaufträgen zum Drucker (seriell, via Async Pro) schicken.
Nach jedem Druckvorgang frage ich den Status des Druckers ab, der (so ist es vorab konfiguriert)
im Falle eines Fehlers ein 'X' schickt. Der Drucktext bzw. die Steuerzeichen sind in einem Memo eingegeben.

Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var i:integer;
    s:string;
begin
error:=0;
For i:=0 to 5 do
Begin
  timer1.enabled:=true;
  repeat
    application.ProcessMessages;
  until error<>2
  timer1.enabled:=false;
  if error=1 then break
 
   // Druckanweisungen
   // Statusabfrage

  error:=2;
  apdcomport1.Output:= (s);
end;

showmessage(i);

end;


procedure TForm1.ApdComPort1TriggerAvail(CP: TObject; Count: Word);
var
  I : Word;
  C : Char;
  S : String;
begin
  S := '';
  for I := 1 to Count do begin
    C := ApdComPort1.GetChar;
    case C of
      #0..#31 : // ;
      else
      S := S + C;
    end;
  end;
  if pos('X',S)>0 then error:=1
  else error:=0;

  memo2.Lines.Add(S);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.Interval:='6000';
timer1.Enabled:=false;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
error:=1;
end;

end.
Mein Ziel ist es, einen Druck zu starten, auf Rückmeldung oder Timeout zu warten und, wenn kein Fehler aufgetreten ist
entsprechend fortzufahren. Alle gedruckten Aufträge werden dann in einer Datenbank abgelegt.
Irgendwie wird mein Abbruch nur völlig ignoriert. Die Rückmeldungen werden jedoch im Memo2 angezeigt, der Event folglich ausgelöst.

MFG
Steffen


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