Servus!
Mir stellt sich das Problem, daß ich mit einer DLL arbeite, die mir eigentlich einen Datensatz in Form eines Strings zurückgibt. Leider weiß ich im Voraus nicht, wann das der Fall ist. Mache ich es so:
Delphi-Quelltext
1: 2: 3: 4: 5:
| function SendString(AnschlussNr : Integer): PChar; stdcall; external 'S_COMM.dll'; ... Ergebnis := SendString(AnschlussNr); ShowMessage('S_COMM-Daten: ' + Ergebnis); if pos('?', Ergebnis) > 0 then Abbruch := True; |
dann habe ich das Problem, daß mein Programm so lange an der Stelle "Ergebnis := ..." stehen bleibt, bis die Daten da sind. Und das kann dauern...
Ich bräuchte nun eine Möglichkeit, mit der ich feststellen kann, ob neue Daten da sind, so daß ich ggfs. den Abruf zu einem späteren Zeitpunkt durchführen kann. Und da stehe ich momentan voll auf dem Schlauch, wie ich das realisieren soll. So was in der Art wie:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| Ergebnis := SendString(AnschlussNr); if Ergebnis = '' then mache dieses else mache jenes... |
Noch eine Anmerkung zur DLL: Es ist so, daß wirklich nur die SendString-Funktion zur Verfügung steht. Entweder gibt sie Daten raus (ggfs. ein Fragezeichen wenn Probleme auftraten) oder es kommt gar nichts.
Gruß,
Adrian