Возникла такая ситуация:
Создаем приложение в delphi7.
Компилируем.
После чего меняем язык в региональных настройках windows (winxp в частности) с русского на англ.
и запускаем наше приложение. В результате все руские буквы превратились в "???????".
Как известно, delphi6-7 сохраняет текст в dfm в unicod'е. В этом скорее всего и проблема. Как уже писалось, что vcl не поддерживает работу с unicod'ом в полном объеме, поэтому происходит конвертация в однобайтовые строки. Однако, мне не понятен такой момент: в двух байтах юникода хранится раскладка, так почему он ее не использует остается загадкой.
В winxp есть такая вещь в региональных настройках "язык для программ не поддерживающих unicode". На нее наша программан не реагирует. Ровно как и выставление charset'а на RUSSIAN_CHARSET. Реагирует только на язык.
Однако все нормально работает, если в dfm хранить строки в формате ansi. Но это очень не удобно в delphi7 - нужно постоянно конвертить.