Einzelnen Beitrag anzeigen

WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#1

Konzeptfrage Drucken mit Rückmeldung Async Pro

  Alt 23. Apr 2008, 14:10
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
  Mit Zitat antworten Zitat