چند تا مشکل وجود داره
اول اینکه متد Execute مربوط به IdTCPServer در یک Thread جداگانه اجرا میشه و شما نمی تونید از داخل یک Thread دیگه به عناصر روی فرم مثل ListBox1 دسترسی داشته باشید
دوم اینکه از داخل یک Thread نباید از Connection های Thread اصلی ( مثلا در DataModule ) استفاده کنید، هر Thread باید Connection مخصوص خودش رو داشته باشه
برای تغییر ListBox از Synchronize استفاده کنید
برای گرفتن Query ، ابتدا یک Connection و Query در همین متد Create کنید و بعد اتصال رو انجام بدید، از Connection های روی فرم استفاده نکنید
اگر در ابتدای کد BreakPoint بزارید احتمالا می بینید که قبل از رسیدن به WriteLn برنامه متوقف میشه
* برای WriteLn بهتره به جای Socket از IOHandler استفاده کنید :
AContext.Connection.IOHandler.WriteLn()