У меня есть несколько форм Delphi, где мы используем пару специальных символов - символ «градус» и символ «ohms». Эти символы используются в заголовках меток, сохраненных в файле DFM, и не генерируются или не изменяются во время выполнения. Назад, когда мы впервые разработали эти формы, символ степени был легким, потому что он находится в наборе символов Ansi (код 176), но для символа ohms необходима греческая кодировка для использования с кодом 217. К счастью (мы обнаружили) все остальные символы, которые мы (буквы и цифры) отлично работают с греческой кодировкой.Перенос Delphi DFM со специальными символами на D2009
Теперь мы хотели бы, чтобы эти формы выглядели одинаково в D2009. Символ степени кажется прекрасным, но символ ома показывает «Ù», потому что текст dfm «Caption = 'Typed in Ohms - 1234' # 217". Я нахожу, что могу редактировать форму, чтобы вставить правильный символ символа Юникода (8486), но, конечно, это потеряно для '?' при возвращении к D7. В идеале я хотел бы сказать D2009, чтобы продолжить использовать греческую кодировку с формой, так что # 217 в dfm отображает символ ohms. Это возможно? Кажется, что игнорируется параметр Font.Charset, который является «GREEK_CHARSET». Я обнаружил грязный способ решения этого вопроса, который заключается в повторении всех компонентов и выполнении «StringReplace (S, ',' OhmsChar, [rfReplaceAll])», но это ужасно и, безусловно, должен быть лучший способ?
Спасибо, Brian
+1 для строк ресурсов. Они - самый чистый способ справиться с этим и сделать более поздний перевод с использованием существующих инструментов ветерок. – skamradt
Это хорошее решение для кода, но как это помогает с файлами DFM? Спасибо –