Страница 204 из 206

Clarion 11-12

Добавлено: 13 Сентябрь 2025, 20:28
Игорь Столяров
finsoftrz писал(а): 13 Сентябрь 2025, 20:17 и насколько на самом деле это востребовано
Интересно было бы посмотреть на реальное приложение с таким кандибобером.
Потому что если всё тоже прорисовывание по координатам сверху как кнопки - то это скорее концепт. 🤷‍♀️

Clarion 11-12

Добавлено: 14 Сентябрь 2025, 16:55
kreator
finsoftrz писал(а): 13 Сентябрь 2025, 20:17 А что там править, передавай как string.
Я тоже за одну переменную. Как в SQL. Есть varchar, у него есть свойство "кодировка", и всё. Единственное - проблема с длиной, типа программист сам должен помнить сколько символов влезет в строку. Либо объявлять с запасом.
finsoftrz писал(а): 13 Сентябрь 2025, 20:17 Еще, я не видел, чтобы поддерживали в одном приложении строки и в ansi и в юникоде. Либо все ansi, либо все юникод.
В принципе SQL допускает разные кодировки для разных полей (столбцов). Но вот это обрабатывать на клиенте... И смысла наверно нет, и трудоёмко.
finsoftrz писал(а): 13 Сентябрь 2025, 20:17 Кстати, в группах один товарищ допытовался, нужен ли на самом деле кому юникод и зачем. Может мысли у него есть какие.
А ему нужен? Откуда он? Понятно, что американцам вряд ли нужен. У них даже шпалы деревянные. :D

Clarion 11-12

Добавлено: 14 Сентябрь 2025, 19:34
finsoftrz
kreator писал(а): 14 Сентябрь 2025, 16:55 А ему нужен? Откуда он? Понятно, что американцам вряд ли нужен. У них даже шпалы деревянные. :D
По моему, американец. Тут все глубже. Юникод это стандарт для 64 битных систем. То есть общее направление это переход приложений на него, взамен кодовых страниц. Когда будут выпиливаться 32 разрядные приложения, будет выпиливаться и работа без юникода. Весь вопрос, сколько времени это займет, может очень долго. Большинство систем переползали на юникод где-то лет 10 назад. RZ вовремя начинал эту тему качать, судя по записи в блоге, занимались вопросом известные питерские товарищи.

Зная состояние SV (отсутствие постоянной команды разработчиков и малочисленная пользовательская база для продукта такого уровня), вероятность полноценной поддержки юникода и появления 64 битного компилятора крайне маловероятны. У нас вариантов то особых нет. Если досидеть до конца дееспособного возраста на 32 битном кларионе не вариант, то надо начинать потихоньку использовать какой-то другой инструмент параллельно. ХЗ, что. Для наших приложений ближе других виндев, там сейчас 25 версия, есть и поддержка юникода, и 64 бита. Хотя сама идеология разработки ближе к 1С, чем к клариону. Кстати, у них бесплатная 32 разрядная версия не совсем без ограничений. Я из любопытства иногда поглядываю, вываливало что-то про ограничение экспресс, видимо, не до конца там убрали.

Clarion 11-12

Добавлено: 14 Сентябрь 2025, 22:02
kreator
finsoftrz писал(а): 14 Сентябрь 2025, 19:34 Юникод это стандарт для 64 битных систем.
Почему? В 32-битной Винде Юникод не поддерживается? Например, блокнотом. Обратное тоже верно - блокнот на 64-битной версии прекрасно читает не-Юникод текст. MS Office тем более.

Clarion 11-12

Добавлено: 14 Сентябрь 2025, 22:24
finsoftrz
Я имел ввиду, что 64 битное api работает нативно с юникодом, и MS рекомендует всем адаптировать свои приложения к юникоду.
Поддержка юникода в win32 это, судя по всему, рассматривается как переходный период. Так как очень много 32 разрядных приложений, которые юникод не используют. То есть тенденция есть, а сколько по времени займет выпиливание 32 разрядных приложений, одному богу известно. Пока поддерживается работа win32, маловероятно, что откажутся от поддержки национальных кодировок.

Clarion 11-12

Добавлено: 14 Сентябрь 2025, 23:07
kreator
finsoftrz писал(а): 14 Сентябрь 2025, 22:24 64 битное api работает нативно с юникодом
Какое-такое api? Ну ладно, бог с ним. MS явно уже не будет ничего ужесточать. Другое дело сторонние библиотеки. Интересно, этот американец понимает, что 32-битных сборок скоро не будет и "наше" ПО встанет?

Clarion 11-12

Добавлено: 16 Сентябрь 2025, 8:30
Игорь Столяров
finsoftrz писал(а): 12 Сентябрь 2025, 19:21 Не понял, совсем отказались от использования zint? Я как бы тоже через него двумерные шк вывожу
Конечно нет ! Никто ни кто, и не от чего не отказывался. :D
1. Если Вы формируете картинки с кодами через запуск EXE - то вообще нет никаких изменений;
2. Если через класс ZINT - то там тоже сейчас поддерживается крайняя версия библиотеки ZINT 2.15.0.

Проблема в том, что мне удалось собрать рабочий ZINT.DLL только с зависимостью от vcruntime140.dll
Это накладывает некоторые особенности по его использованию ... :(

Можно и это обойти, но нужна информация, документация и поддержка со стороны авторов.
Но у меня на сентябрь уже исчерпан лимит сил по общению с недооценёнными гениями программирования. :idied:

Clarion 11-12

Добавлено: 16 Сентябрь 2025, 8:46
finsoftrz
Я работаю через zint.dll, только класс свой, по мотивам того, что Вы когда-то выкладывали.

Clarion 11-12

Добавлено: 16 Октябрь 2025, 9:23
finsoftrz
Поля ввода строк с юникодом.

cla_utf8_input.png
cla_utf8_input.png (5.67 КБ) 534 просмотра

Clarion 11-12

Добавлено: 16 Октябрь 2025, 11:31
finsoftrz
На всякий случай поясню по скриншоту. Это использована библиотека scintilla, написанная на С. Размер dll около 1мб. Она достаточно распространенная, в интернете много информации. Обычно используют в разных средах и языках программирования для создания встроенных редакторов кода. Никаких прототипов функций не требуется, взаимодействие через виндовые сообщения. То есть, у нас работа через сабклассинг. Для clarion есть опенсорсный класс обертка, который сделали англоязычные коллеги в начале нулевых, последнее дополнение было в 2015 году. Библиотека может работать с utf8. Возможностей много, можно много чего настроить (например, контекстное меню, горячие клавиши). В принципе, можно использовать как альтернативные строки ввода с поддержкой юникода. В окне добавляется region и напускается на него экземпляр класса. Кода немного, по сути, одна инициализация и присвоение/сохранение значений. То есть, простой контрол шаблон. Класс требует некоторой доводки, чтобы переназначить работу клавиш enter, tab и т.п. и получить поведение, как в обычных строках ввода.

Clarion 11-12

Добавлено: 16 Октябрь 2025, 12:18
Дед Пахом
Любопытно. А что ж все ноют-то, что юникода нет?

Clarion 11-12

Добавлено: 16 Октябрь 2025, 13:11
Губин Игорь
Дед Пахом писал(а): 16 Октябрь 2025, 12:18 Любопытно. А что ж все ноют-то, что юникода нет?
Потому, что это не родное. Для того, чтобы использовать все возможности Clarion, включая дизайнер, prop:, event: и т.п., надо "немного" довести. Аналогичное потребуется для List, String, Button, работы с файлами... Т.е., фактически, потребуется написать новый рантайм :dizzy:

Работа с юникод в пределах окна особо не критична, т.к. в 80% покрывается CHARSET, а вот заголовки окон, т.е. всё, где работает системный шрифт... Я, в своё время, написал шаблон, который заменял заголовки окон на имитацию контролами окна. Но новые/исправляемые глюки Clarion и обновления разных версий виндов с новыми/исправляемыми глюками API приводили к тому, что, как не вылизывай, смотрится криво и невозможно написать универсальный код.

Clarion 11-12

Добавлено: 16 Октябрь 2025, 14:36
finsoftrz
Вероятность полноценного перехода Clarion на юникод такова, как и вероятность появления 64 битного компилятора. То есть, нулевая. Поэтому придется приспосабливаться для решений в конкретных ситуациях, где такое может понадобиться. Если действительно нужны юникод и 64 бита, то сейчас проще использовать другой инструмент, где это уже давно работает и отлажено.

Clarion 11-12

Добавлено: 17 Октябрь 2025, 8:02
finsoftrz
Кстати, во многих других системах заголовки окон выглядят нестандартно. Видимо, тоже имитируют контролами. И на хабе периодически кто-то про такое пишет. Я не вникал в нюансы, так как мне такое не нужно. На первый взгляд, а какие там могут быть проблемы? Самое сложное реализовать перетаскивание окна, держа нажатым mouse left на какой-то области. И найти альтернативу таким вещам, как mdi tab.

Выглядит так, что почти все, что нужно для использования юникода, у нас уже есть. Даже вывод в LIST вроде через win api, не знаю, как Михаил это делает. Ещё прикрутить библиотеку для работы со строками в юникоде. Вроде в win api такая есть. Или на С в интернете поискать, или на clarion форк написать.

Clarion 11-12

Добавлено: 17 Октябрь 2025, 9:32
Admin
finsoftrz писал(а): 17 Октябрь 2025, 8:02 Самое сложное реализовать перетаскивание окна, держа нажатым mouse left на какой-то области
2025-10-17_16-30-38.png
Какая то заготовка... тут делал вроде за окно в любой части легко таскалось.