title: Borland C++ - Multithreaded TCPServer Issue
body: <p>[I might be wrong about these]
  <strong>TIdTCPServer Server</strong> is multithreaded in Borland C++ builder. It handles all client's on seperate threads. This is written in help of Borland c++.</p>
  
  <p>Now is my problem &amp; question. 
  For example, <code>ShowMessage(String ..)</code> method should be called on main (gui) thread. But as I say above, TCPServer is multithreaded and handles <code>OnExecute</code> event on different threads.  When I use ShowMessage method in OnExecute event (which is handled on a different thread than main thread), I get weird results. Sometimes <code>ShowMessage()</code> works as expected, sometimes it is shown without any text on it with different box sizes(infinite lengt, very long, normal, etc). The other user interface changes causes no problem(update TEdit, TMemo. Only <code>ShowMessage()</code> has problem for now)</p>
  
  <p>I think this problem is the result of calling <code>ShowMessage()</code> method not on the main (gui) thread but on TCPServer's thread which is created for client connections internally  by TIdTCPServer. 
  So how can I fix it? </p>