Why don't you use the standard dialogs? They are already themed and most are, at least, lightly customizable.
ETA: Also, you can look to their source code to see how they are built and managed.
The "TTaskDialog" is very flexible, have you looked into that yet?
I have to work it further because a have a bit of confussion about processing the modal results of the dialog an how to pass the parameters and the results from one form to another :-/