Hallo, ich komme einfach nicht mehr weiter, über einen Timer kann
ich wunderschön meine Daten abholen. Da ich aber mehrere Strings
gesendet bekomme will ich warten bis alles da ist.
Über meine Procedure TForm1.ReadData; bekomme ich nichts ausgelesen.
Über Timer geht es, woran liegt das ?
mfg
Delphi-Quellcode:
{#######################################################}
{ Timer1 Interval 100 }
{#######################################################}
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if not Form1.TCPClient.Connected = true
then Exit;
if Form1.TCPClient.IOHandler.InputBufferIsEmpty
then Exit;
rec_str:= Form1.TCPClient.IOHandler.ReadLn();
edit10.Text:= edit10.Text + rec_str;
Memo1.Lines.Add(rec_str);
end;
{#######################################################}
{ TCP auslesen }
{#######################################################}
Procedure TForm1.ReadData;
var StartTimeOut : Integer;
tmp :
String;
begin
rec_str:= '
';
StartTimeOut := Gettickcount + 200;
//200Ms bis zum ersten zeichen...
while Gettickcount < StartTimeOut
do
begin
if not Form1.TCPClient.IOHandler.InputBufferIsEmpty
then
begin
tmp:= Form1.TCPClient.IOHandler.ReadLn();
rec_str := rec_str + tmp;
StartTimeOut := Gettickcount + 100;
//100ms TimeOut erhöhung..
end;
application.processmessages;
//Anti Freeze
end;
Memo1.Lines.Add(rec_str);
end;