Проблема с кодировкой

отредактировано 12:48 Раздел: FastReport 4.0
Мне надо программно (в скрипте) изменить кодировку шрифта в зависимости от определенных условий. Пишу:
procedure DBCross1OnPrintRowHeader(Memo: TfrxMemoView; HeaderIndexes, HeaderValues, Value: Variant);
begin
  if HeaderIndexes[0] >= quantity then
    begin              
      Memo.Color := clWhite;
      Memo.Font.Charset := 161;    //  Greek_Charset                                                        
    end;
end;

Текст "мEE", где м - русская, а EE - латинские должен выглядить как греческое "мю" и две латинских "Е". Но вместо "мю" я вижу знак вопроса. В чем дело? Разработчики, подскажите! Если менять чарсет в инспекторе объектов, то все нормально, но мне-то нужно его менять В СКРИПТЕ. Текст "Greek_Charset" компилятор почему-то не воспринял, поэтому я был вынужден обратиться к модулю Windows, где нашел численные значения всех констант свойства Charset. Для Greek_CharSet - это 161. Но все равно результат не оправдал ожиданий. :)

Комментарии

  • отредактировано 12:48
    Спустя год проблема по-прежнему актуальна. Как использовать греческие символы в отчетах FR? И есть ли вообще такая возможность?
  • отредактировано 12:48
    Проблема была решена после обращения в службу тех. поддержки. С весны 2010 начал работать на Delphi 2010, поддерживающем юникод, а это означает, что любые спец. символы и, в т.ч. греческие буквы, можно заносить в дэйтасеты напрямую. А в отчетах надо у КроссТабов у всех ячеек поменять значение свойства Font.Charset с RUSSIAN_CHARSET на DEFAULT_CHARSET.
  • отредактировано 12:48
    madmech написал: »
    Проблема была решена после обращения в службу тех. поддержки. С весны 2010 начал работать на Delphi 2010, поддерживающем юникод, а это означает, что любые спец. символы и, в т.ч. греческие буквы, можно заносить в дэйтасеты напрямую. А в отчетах надо у КроссТабов у всех ячеек поменять значение свойства Font.Charset с RUSSIAN_CHARSET на DEFAULT_CHARSET.


    А если у меня слетает кодировка в объекте richtext , свойства font там нет , как мне от этого избавится , каждый раз при сохранение изменений в fr4 , слетает кодировка в объекте richtext
  • отредактировано 12:48
    ktrn написал: »
    А если у меня слетает кодировка в объекте richtext , свойства font там нет , как мне от этого избавится , каждый раз при сохранение изменений в fr4 , слетает кодировка в объекте richtext
    А что там не так с кодировкой? Попробовал в пустом фиктивном отчете в RichText напрямую вставить греческий символ из таблицы символов, и все заработало. Сохранил, потом опять открыл отчет - все нормально. Не вижу проблемы.
  • отредактировано 12:48
    А зачем греческий символ , у меня с кириллицой проблема.
    Но вообще проблема серьёзней , заметила что не только в rich слетает кодировка, но даже в коде слетает.
    Сам отчет был создан в версии 3.24.1 и в коде были использованы комментария на русском языке , некоторые функции возвращают строку на русском языке.
    Затем мы перешли на версию 4.8.28 и все изменения сохраняются под этой версией , в итоге при печати выходит абракадабра вместо кириллицы, и при открытии шаблона опять в версии 3.24.1 на закладке code реально абракадабры вместо кириллицы.
    При исправлении в 3.24.1 опять все печатается хорошо , как только изменения сохранияюся в версии 4.8.28 опять появляется абракадабра .
    Что делать ? Где рыть ? помогите
  • gpigpi
    отредактировано 12:48
    Выложите исходный шаблон отчёта и шаблон, изменённый в 4.8.28
  • отредактировано 12:48
    шаблон Faktura 3ver исходный
    шаблон Faktura 4ver, измененый в версии 4.8.28 , если его открыть под версией 3.24.1 , то на закладке code появится абракадабра, хотя под версией 4.8.28 всё корректно. Далее открытый шаблон в версии 3.24.1 несущественно изменяем , при этом абрукадабру не трогаем , и сохраняем и потом открываем в версии 4.8.28 и тогда в нем абракадабра становится видна .
  • gpigpi
    отредактировано 12:48
    Вы не сможете открывать в 3.24.1 шаблоны, отредактированные в 4.8.28 на юникодных версиях Delphi (2009, 2010, XE)
  • отредактировано 12:48
    gpi написал: »
    Вы не сможете открывать в 3.24.1 шаблоны, отредактированные в 4.8.28 на юникодных версиях Delphi (2009, 2010, XE)

    Я что-то не понимаю , что вы подразумеваете под " не сможете открывать" и я не использую версии Delphi (2009, 2010, XE)
  • gpigpi
    отредактировано 12:48
    У Вас в Faktura_4ver.fr3 все русские тексты сохранены в юникоде. Это происходит в том случае, если программа, использующая версию 4.8.28, скомпилирована в Delphi (2009, 2010, XE). В шаблоне, сохранённом в такой программе, будут некорректно отображаться русские буквы при открытии его в программе, использующей версию 3.24.1
  • отредактировано 12:48
    С этим получается ничего не поделать или можно как-нибудь побороться ?
  • gpigpi
    отредактировано 12:48
    Ничего сделать нельзя. Обратная совместимость не поддерживается

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.