In einem Thread ShowMessage aufzurufen ist auch nicht so clever, da es ein
VCL Dialog ist und damit nicht threadsafe. Nimm für so etwas mal die eine Messagebox von Windows. aber ich würde so wie so, die Exceptions im Thread nur auslösen und im Main Thread behandeln. Dann ist der Code auch besser wieder verwendbar.