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