Also wenn die
DLL nichts in der Richtung bereitstellt, isses natürlich doof.
In diesem Fall würde ich einen Thread benutzen, der die Robotersteuerung übernimmt.
Der kann dann ja z.B. eine Liste haben und wie folgt arbeiten:
Delphi-Quellcode:
procedure TThread.Execute;
begin
while (not Terminated) and (not CommandQueue.IsEmpty) do
begin
Execute(CommandQueue.Pop());
while Robot.ismoving do Sleep(0);
// evtl. dem Mainthread den Fortschritt mitteilen
end;
end;
Das Sleep(0) bewirkt hier, dass die Bearbeitung des Threads unterbrochen wird und andere Prozesse Rechenzeit bekommen (solange du ihn nicht auf Echtzeitpriorität stellst ...)
Das Ausgelagere in den Thread heißt, dass du auf Application.Processmessages verzichten kannst