Clarion 12 & Unicode (только факты)

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8156
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 30 раз
Поблагодарили: 104 раза

Clarion 12 & Unicode (только факты)

Сообщение Игорь Столяров »

Всем привет !

Все знают, что если не установить в региональных настройках Windows русскую кодировку для Non Unicode
программ - то в софте собранном на Clarion будут кракозябры. Что нормально и логично - здесь всё правильно.

Ситуация повторяется у юзеров регулярно и выглядела примерно вот так (сборка C10 / C11):

c11.jpg

Каково же было моё удивление, когда мне прислали снимок с аналогичной ситуацией для программы собранной в C12:

c12.jpg

Т.е. проблема с кодировкой осталась, но только в полях ввода ...
И если появятся анонсированные строки USTRING - то наверно всё будет вообще OK ?
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5399
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Clarion 12 & Unicode (только факты)

Сообщение finsoftrz »

Они отказались от USTRING, написали, что обычный STRING будет поддерживать.
А попробуйте что-нибудь иероглифами в промпте написать.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8156
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 30 раз
Поблагодарили: 104 раза

Clarion 12 & Unicode (только факты)

Сообщение Игорь Столяров »

finsoftrz писал(а): 25 Август 2025, 17:25 А попробуйте что-нибудь иероглифами в промпте написать.
Так это же мне юзеры присылают.
Я им скопипастил инструкцию с картинкой по установке кодовой страницы для Non Unicode программ и у них всё OK. :D
finsoftrz писал(а): 25 Август 2025, 17:25 Они отказались от USTRING, написали, что обычный STRING будет поддерживать.
Ну тогда есть подозрение, что мы просто пересоберём с новым RTL проекты С12.1 и они уже будут с поддержкой Unicode. 8)
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5399
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Clarion 12 & Unicode (только факты)

Сообщение finsoftrz »

Ага, и перестанут работать. Если это вообще когда-нибудь случится. :D
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5399
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 13 раз
Поблагодарили: 68 раз

Clarion 12 & Unicode (только факты)

Сообщение finsoftrz »

Игорь, если не секрет, зачем Вам юникод?
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8156
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 30 раз
Поблагодарили: 104 раза

Clarion 12 & Unicode (только факты)

Сообщение Игорь Столяров »

finsoftrz писал(а): 25 Август 2025, 18:55 Игорь, если не секрет, зачем Вам юникод?
Ну у нас есть русскоговорящие пользователи в Евросоюзе и Арабских странах.
Их немного - но они есть. А вот в Украине, Республике Беларусь, Средней Азии - уже десятки.
Возникающие вопросы с кодировкой конечно решаемы ... но лучше бы они не возникали. :D
Make Clarion Great Again ! 😎
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2648
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 28 раз

Clarion 12 & Unicode (только факты)

Сообщение Губин Игорь »

А ларчик-то просто открывается! :facepalm:

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

Не приписывайте велосипедистам работу, которую они не делают :cat:
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8156
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 30 раз
Поблагодарили: 104 раза

Clarion 12 & Unicode (только факты)

Сообщение Игорь Столяров »

Губин Игорь писал(а): 26 Август 2025, 8:32 Это работает FONT:Charset. А если правильно его указать, то и в полях ввода будет
Научите ! Я бы с радостью заюзал вариант, который бы работал без установки кодировки для Non Unicode программ ! :D
Make Clarion Great Again ! 😎
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2648
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 28 раз

Clarion 12 & Unicode (только факты)

Сообщение Губин Игорь »

Игорь Столяров писал(а): 26 Август 2025, 8:39 Научите ! Я бы с радостью заюзал вариант, который бы работал без установки кодировки для Non Unicode программ !
Да воскурим мануал, да явится нам просветление в виде описания...
FONT([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.
Для всех, я подчёркиваю, ВСЕХ, элементов окна/отчёта (включая само окно), кроме IMG :lol: , указываете CHARSET:Cyriilic и имя фонта TrueType. Вот и все дела...

Этот кусок в рантайме, как я уже много раз писал :facepalm: , порождение сумрачного гения российского программиста :ty: . Он об этой идее писал мне ещё в ФИДО, когда уходил к велосипедистам. Т.ч. работает надёжно, хоть и не без некоторых глюков.

У меня есть тестовое окно со всем возможными элементами и 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 (только факты)

Сообщение finsoftrz »

Подозрения не обоснованы. :D Попробуйте сделать простую функцию, которая обходит все контролы текущего окна и явно для них (а не для system) устанавливает тип шрифта и кодировку. Вызовите ее после открытия окна.
То, что рантайм с12 начал выводить кириллицу в ряде контролов, с большой долей вероятности связано с тем, что в нем указанный алгоритм включили по умолчанию, и никакого отношения к юникоду это не имеет.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2648
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 28 раз

Clarion 12 & Unicode (только факты)

Сообщение Губин Игорь »

Игорь Столяров писал(а): 26 Август 2025, 10:50 Понятно. Естественно таких глупостей в примерах первого сообщения никто не делал, и русский текст есть.
Подозреваю, что это прибамбасы для AnyScreen и к обычным с сборкам Win x32 отношения не имеет.
Это делалось для того, чтобы русский текст отображался в окнах и отчётах десктопных приложений под самыми различными локализациями самых различных версий виндов, не требуя каких-либо телодвижений от пользователя по их настройке под приложение. Без этого крякозябры могут проявляться, даже, в зависимости от установленных обновлений русскоязычных windows, не говоря уже о системных шрифтах.

Т.е., сделав как сказано, вы можете быть уверены, что, с учётом глюков на отдельных видах контролов (зависит от версии Clarion, обход проблемы обрабатывается шаблоном), единственное, где может не быть русских букв, это заголовок окна, и плевать, что там за настройки у пользователя, хоть китайские.
finsoftrz писал(а): 26 Август 2025, 11:32Попробуйте сделать простую функцию, которая обходит все контролы текущего окна и явно для них (а не для system) устанавливает тип шрифта и кодировку. Вызовите ее после открытия окна.
Увы, в рантайме были глюки, при которых это не всегда помогало. Т.ч. пришлось выработать привычку изначально прописывать вручную в структуре окна. Может, потом и поправили, но хорошая привычка осталась.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8156
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 30 раз
Поблагодарили: 104 раза

Clarion 12 & Unicode (только факты)

Сообщение Игорь Столяров »

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

Clarion 12 & Unicode (только факты)

Сообщение finsoftrz »

Игорь Столяров писал(а): 26 Август 2025, 11:48
finsoftrz писал(а): 26 Август 2025, 11:32 которая обходит все контролы текущего окна и явно для них устанавливает тип шрифта и кодировку.
Будут задержки в открытии больших окон и блыманье.
Чтобы не было лишних перерисовок, надо это делать сразу после открытия окна, до первого display. Времени это не так много занимает. Вы сейчас же изменяете динамически размер шрифта в окнах, я думаю, это более затратная операция, так как надо еще вычислять и ресайзить контролы.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2648
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 4 раза
Поблагодарили: 28 раз

Clarion 12 & Unicode (только факты)

Сообщение Губин Игорь »

Игорь Столяров писал(а): 26 Август 2025, 11:48 Будут задержки в открытии больших окон и блыманье.
finsoftrz писал(а):
Если делать правильно, согласно описаному в мануале, то нет.
finsoftrz писал(а): 26 Август 2025, 11:55 Вы сейчас же изменяете динамически размер шрифта в окнах, я думаю, это более затратная операция, так как надо еще вычислять и ресайзить контролы.
Если делать правильно, согласно описаному в мануале, то совсем не затратная. Использую на очень "затратных" окнах в динамике при ресайзе.
Это я только кажусь дураком! На самом деле я полный идиот!
Ответить