Hallo!
Delphi-Quellcode:
SizeOfIncomingStream := Socket.ReadInteger;
Socket.ReadStream(IDS, SizeOfIncomingStream);
Da es sich hier nicht um einen asynchronen Befehl handelt, wird doch gewartet, bis der komplette Stream eingelesen wurde. In dieser Zeit ist der
VCL-Hauptthread natürlich blockiert, es werden keine Botschaften oder sonstiges verarbeitet. Da hilft dir auch ein irgendwie gearteter Timer nicht, denn der wartet auch darauf, daß der
VCL-Hauptthread wieder auftaucht von der Prozedur...
Du musst dafür sorgen, daß der Download in separaten Threads erfolgt. Im Delphiforum habe ich da ein paar
TCP-Komponenten gepostet, die dir asynchrones Lesen erlauben und dir synchronisierte Ereignisse wie OnRead und OnProgress liefern, kannst sie dir ja mal anschauen. Stichwort SimpleTCP.
Cu,
Udontknow