Baron, użycie timera, pomimo że jest lepszą opcją, nic tu nie da, bo kolega nie wie, jak działają sockety. A działają tak, że jeśli socket nie będzie miał odebranych danych w buforze, będzie blokował. W przypadku ReadLn będzie blokował do momentu, gdy nie odbierze całej linii tekstu lub nastąpi tzn. timeout. Problem w tym, że nie zawsze wiadomo kiedy serwer wyśle taką linię, więc trzeba by jakoś sprawdzać, czy w sockecie są jakieś dane. W winsocku jest funkcja select, która znakomicie się do tego nadaje, no ale mamy tu do czynienia z INDY, więc trzeba by znaleźć jakiś ekwiwalent tej funkcji.
____
p.s. a to loginUser to po co?