Converting a pre-Delphi 2009 application to unicode is difficult but doable. I'd split it up into 3 tasks.
- First, make sure your database handles unicode strings. Preferably UTF-16 support. Make sure all your database code handles widestrings correctly, and the drivers you are using handle this ok too.
- Convert all your business logic from using strings to using WideStrings. It's very easy to miss some, and you won't get any errors, as the compiler will implicitly convert widestring to string if you forget any methods. Also make sure you change all standard string functions to WideString equivalents. This process needs to extend to any thrid part components you may use.
- Final part is to change the standard and third party visual components you may have to WideString equivalents. This needs to be done where ever you'll be displaying strings which may contain unicode characters.
On top of all that make sure your testing is thorough, and uses unicode characters which actually use the high byte. If you just test using the latin character set, you will miss bugs.