Clarion 12 & Unicode (только факты)
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 8156
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 30 раз
- Поблагодарили: 104 раза
Clarion 12 & Unicode (только факты)
Всем привет !
Все знают, что если не установить в региональных настройках Windows русскую кодировку для Non Unicode
программ - то в софте собранном на Clarion будут кракозябры. Что нормально и логично - здесь всё правильно.
Ситуация повторяется у юзеров регулярно и выглядела примерно вот так (сборка C10 / C11):
Каково же было моё удивление, когда мне прислали снимок с аналогичной ситуацией для программы собранной в C12:
Т.е. проблема с кодировкой осталась, но только в полях ввода ...
И если появятся анонсированные строки USTRING - то наверно всё будет вообще OK ?
Все знают, что если не установить в региональных настройках Windows русскую кодировку для Non Unicode
программ - то в софте собранном на Clarion будут кракозябры. Что нормально и логично - здесь всё правильно.
Ситуация повторяется у юзеров регулярно и выглядела примерно вот так (сборка C10 / C11):
Каково же было моё удивление, когда мне прислали снимок с аналогичной ситуацией для программы собранной в C12:
Т.е. проблема с кодировкой осталась, но только в полях ввода ...
И если появятся анонсированные строки USTRING - то наверно всё будет вообще OK ?
Make Clarion Great Again ! 
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5399
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
Clarion 12 & Unicode (только факты)
Они отказались от USTRING, написали, что обычный STRING будет поддерживать.
А попробуйте что-нибудь иероглифами в промпте написать.
А попробуйте что-нибудь иероглифами в промпте написать.
C6/C12, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8156
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 30 раз
- Поблагодарили: 104 раза
Clarion 12 & Unicode (только факты)
Так это же мне юзеры присылают.
Я им скопипастил инструкцию с картинкой по установке кодовой страницы для Non Unicode программ и у них всё OK.

Ну тогда есть подозрение, что мы просто пересоберём с новым RTL проекты С12.1 и они уже будут с поддержкой Unicode.finsoftrz писал(а): 25 Август 2025, 17:25 Они отказались от USTRING, написали, что обычный STRING будет поддерживать.

Make Clarion Great Again ! 
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5399
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
Clarion 12 & Unicode (только факты)
Ага, и перестанут работать. Если это вообще когда-нибудь случится. 

C6/C12, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5399
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
Clarion 12 & Unicode (только факты)
Игорь, если не секрет, зачем Вам юникод?
C6/C12, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8156
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 30 раз
- Поблагодарили: 104 раза
Clarion 12 & Unicode (только факты)
Ну у нас есть русскоговорящие пользователи в Евросоюзе и Арабских странах.
Их немного - но они есть. А вот в Украине, Республике Беларусь, Средней Азии - уже десятки.
Возникающие вопросы с кодировкой конечно решаемы ... но лучше бы они не возникали.

Make Clarion Great Again ! 
- Губин Игорь
- Шубуршун
- Сообщения: 2648
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 28 раз
Clarion 12 & Unicode (только факты)
А ларчик-то просто открывается!
Это работает FONT:Charset. А если правильно его указать, то и в полях ввода будет... Я такое делал на 9, 10, 11...
В рантайме есть некоторые глюки с этим, но вполне обходимые.
Не приписывайте велосипедистам работу, которую они не делают

Это работает FONT:Charset. А если правильно его указать, то и в полях ввода будет... Я такое делал на 9, 10, 11...
В рантайме есть некоторые глюки с этим, но вполне обходимые.
Не приписывайте велосипедистам работу, которую они не делают

Это я только кажусь дураком! На самом деле я полный идиот!
- Игорь Столяров
- Ветеран движения
- Сообщения: 8156
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 30 раз
- Поблагодарили: 104 раза
Clarion 12 & Unicode (только факты)
Научите ! Я бы с радостью заюзал вариант, который бы работал без установки кодировки для Non Unicode программ !Губин Игорь писал(а): 26 Август 2025, 8:32 Это работает FONT:Charset. А если правильно его указать, то и в полях ввода будет

Make Clarion Great Again ! 
- Губин Игорь
- Шубуршун
- Сообщения: 2648
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 28 раз
Clarion 12 & Unicode (только факты)
Да воскурим мануал, да явится нам просветление в виде описания...Игорь Столяров писал(а): 26 Август 2025, 8:39 Научите ! Я бы с радостью заюзал вариант, который бы работал без установки кодировки для Non Unicode программ !
Для всех, я подчёркиваю, ВСЕХ, элементов окна/отчёта (включая само окно), кроме IMGFONT([typeface] [,size] [,color] [,style] [,charset ])
typeface
A string constant containing the name of the font (PROP:FontName, equivalent to {PROP:Font,1}). If omitted, the system font is used.
charset
An integer constant or constant expression or EQUATE specifying the character set for the specified FONT (PROP:FontCharSet) or (PROP:Font,5). This provides support for international character sets. If omitted, the default charater set for the FONT is used.

Этот кусок в рантайме, как я уже много раз писал


У меня есть тестовое окно со всем возможными элементами и CHARSET:Arabic. Каждый раз после выхода обновления рантайма я на нём тестирую возникшие/исчезнувшие глюки работы с CHARSET
P.S. Хорошо ещё и для System перед открытием первого окна указать подобное.
Это я только кажусь дураком! На самом деле я полный идиот!
- Игорь Столяров
- Ветеран движения
- Сообщения: 8156
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 30 раз
- Поблагодарили: 104 раза
Clarion 12 & Unicode (только факты)
Понятно. Естественно таких глупостей в примерах первого сообщения никто не делал, и русский текст есть.Губин Игорь писал(а): 26 Август 2025, 9:13 Для всех, я подчёркиваю, ВСЕХ, элементов окна/отчёта (включая само окно), кроме IMG,
указываете CHARSET:Cyriilic и имя фонта TrueType. Вот и все дела...

Подозреваю, что это прибамбасы для AnyScreen и к обычным с сборкам Win x32 отношения не имеет.
Что касается управления кодировкой - то это неоднократно обсуждалось и используется.
Код: Выделить всё
System{Prop:CharSet} = Charset:Cyrillic
System{Prop:FontCharSet} = Charset:Cyrillic
System{Prop:FontName} = 'Arial' ! КОСТЫЛЬ ОШИБКИ В РЕЛИЗЕ 1384
И ещё раз для тех кто бегло пишет и копипастит, но к сожалению ещё не читает.

Показана разница в отображении окон с различными версиями Clarion (RTL)
Make Clarion Great Again ! 
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5399
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
Clarion 12 & Unicode (только факты)
Подозрения не обоснованы.
Попробуйте сделать простую функцию, которая обходит все контролы текущего окна и явно для них (а не для system) устанавливает тип шрифта и кодировку. Вызовите ее после открытия окна.
То, что рантайм с12 начал выводить кириллицу в ряде контролов, с большой долей вероятности связано с тем, что в нем указанный алгоритм включили по умолчанию, и никакого отношения к юникоду это не имеет.

То, что рантайм с12 начал выводить кириллицу в ряде контролов, с большой долей вероятности связано с тем, что в нем указанный алгоритм включили по умолчанию, и никакого отношения к юникоду это не имеет.
C6/C12, ШВС, tps/btrieve.
- Губин Игорь
- Шубуршун
- Сообщения: 2648
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 28 раз
Clarion 12 & Unicode (только факты)
Это делалось для того, чтобы русский текст отображался в окнах и отчётах десктопных приложений под самыми различными локализациями самых различных версий виндов, не требуя каких-либо телодвижений от пользователя по их настройке под приложение. Без этого крякозябры могут проявляться, даже, в зависимости от установленных обновлений русскоязычных windows, не говоря уже о системных шрифтах.Игорь Столяров писал(а): 26 Август 2025, 10:50 Понятно. Естественно таких глупостей в примерах первого сообщения никто не делал, и русский текст есть.
Подозреваю, что это прибамбасы для AnyScreen и к обычным с сборкам Win x32 отношения не имеет.
Т.е., сделав как сказано, вы можете быть уверены, что, с учётом глюков на отдельных видах контролов (зависит от версии Clarion, обход проблемы обрабатывается шаблоном), единственное, где может не быть русских букв, это заголовок окна, и плевать, что там за настройки у пользователя, хоть китайские.
Увы, в рантайме были глюки, при которых это не всегда помогало. Т.ч. пришлось выработать привычку изначально прописывать вручную в структуре окна. Может, потом и поправили, но хорошая привычка осталась.finsoftrz писал(а): 26 Август 2025, 11:32Попробуйте сделать простую функцию, которая обходит все контролы текущего окна и явно для них (а не для system) устанавливает тип шрифта и кодировку. Вызовите ее после открытия окна.
Это я только кажусь дураком! На самом деле я полный идиот!
- Игорь Столяров
- Ветеран движения
- Сообщения: 8156
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 30 раз
- Поблагодарили: 104 раза
Clarion 12 & Unicode (только факты)
Будут задержки в открытии больших окон и блыманье.finsoftrz писал(а): 26 Август 2025, 11:32 которая обходит все контролы текущего окна и явно для них устанавливает тип шрифта и кодировку.
Пёс с ним, с юникодом. Если русский текст (кириллица) будет корректно отображаться и вводится - мне всё
равно как это называется. А использование разных наборов символов в одном окне - действительно не нужно.
Make Clarion Great Again ! 
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5399
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 13 раз
- Поблагодарили: 68 раз
Clarion 12 & Unicode (только факты)
Чтобы не было лишних перерисовок, надо это делать сразу после открытия окна, до первого display. Времени это не так много занимает. Вы сейчас же изменяете динамически размер шрифта в окнах, я думаю, это более затратная операция, так как надо еще вычислять и ресайзить контролы.Игорь Столяров писал(а): 26 Август 2025, 11:48Будут задержки в открытии больших окон и блыманье.finsoftrz писал(а): 26 Август 2025, 11:32 которая обходит все контролы текущего окна и явно для них устанавливает тип шрифта и кодировку.
C6/C12, ШВС, tps/btrieve.
- Губин Игорь
- Шубуршун
- Сообщения: 2648
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Благодарил (а): 4 раза
- Поблагодарили: 28 раз
Clarion 12 & Unicode (только факты)
Если делать правильно, согласно описаному в мануале, то нет.Игорь Столяров писал(а): 26 Август 2025, 11:48 Будут задержки в открытии больших окон и блыманье.
finsoftrz писал(а):
Если делать правильно, согласно описаному в мануале, то совсем не затратная. Использую на очень "затратных" окнах в динамике при ресайзе.finsoftrz писал(а): 26 Август 2025, 11:55 Вы сейчас же изменяете динамически размер шрифта в окнах, я думаю, это более затратная операция, так как надо еще вычислять и ресайзить контролы.
Это я только кажусь дураком! На самом деле я полный идиот!