<p>I want to send a message to a thread and handle it in the thread. How can I do this in Delphi? I guess <code>PostMessage</code> is the way to go, but the examples I've seen so far are describing the other way, i.e. from the thread to main thread.</p>

I won't even try and explain or write any code. Just look at this tutorial. It's a little old, but very good imho.
Multithreading - The Delphi Way