Hi moelski,
Ah... RS-232? Dann ist es doch aber egal, ob die Anwendung bei 100% steht, oder? Du kannst die gesamte Kommunikation mit dem Ladegerät doch in einen Thread auslagern, dann soll der doch warten.
Einen Thread zu basteln ist relativ einfach:
Delphi-Quellcode:
Type
TMyThread = Class (TThread)
<Lokale Werte>
Protected
Procedure Execute; Override;
Public
Constructor Create (<Werte für den Thread>);
End;
Constructor TMyThread.Create(<Werte für den Thread>);
Begin
Inherited Create (True);
<Lokale Werte> := <Werte für den Thread>
<Sonstige Vorbereitungen>
Resume; // Jetzt geht lo-hos!
End;
Procedure TMyThread.Execute;
Begin
Try
<Hier steht der Code drin, den der Thread ausführen soll>
<Dazwischen immer mal wieder ein :>
If Terminated Then Exit;
Finally
<Etwaige Speicheranforderungen, Objekte etc. wieder freigeben>
End
End;
Wenn Du auf die
VCL oder irgendwelche Objekte, Variablen (außer die lokaen Werte) zugreifst, musst Du das kapseln. Sonst schreiben vielleicht 2 Threads gleichzeitig in eine Variable und das geht meist schief.