Clarion 11-12

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Clarion 11-12

Сообщение finsoftrz »

Игорь Столяров писал(а): 08 Август 2021, 14:38 Скорее всего вопрос решиться у Вас уже на этапе формирования такого примера ... ;)
Не, ну могу либу прислать (dll) и файл деклараций процедур к ней. Но вряд ли захотите ковыряться. В с6 идентичный код работает без вопросов, он был оттуда и перенесен. Копирование процедуры один в один в первую dll также снимает проблему. Это 100% проблема в билде клариона.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Clarion 11-12

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

finsoftrz писал(а): 08 Август 2021, 14:40 Вы на более позднем смотрите, и там этот баг пофиксили.
Не могу утвеждать - т.к. не помню. Вы используете релиз февраля 2020 г.
Таки да - в релизах бывают проблемы, которые потом устраняют.
А в чём смысл заявки о проблеме в релизе полутора-годовой давности ?

Сейчас работаем на крайнем релизе C11.1.0.13758
До этого был вполне стабильный релиз C11.0.13630
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Clarion 11-12

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

finsoftrz писал(а): 08 Август 2021, 14:43 Но вряд ли захотите ковыряться. ... Это 100% проблема в билде клариона.
Всё может быть. Мне самому бывает обидно, когда в C63 всё работает как часы, а в С11 становится колом. :(
Надо принять 2 вещи:
1. C11(.1) - это не С63. И никто не будет обеспечивать 100 % совместимость (хотя она есть и неплохая).
2. На все наши проблемы - SV чихать. У них свой путь, мы можем либо забить на C11(.1), либо приспосабливаться к тому что есть. ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Clarion 11-12

Сообщение finsoftrz »

Игорь Столяров писал(а): 08 Август 2021, 14:31
SergioRaguzini писал(а): 08 Август 2021, 12:49 не плохой реализацией современного интерфейса выполненного средствами Clarion
Это очень обидная тема. Дело в том, что оформительские возможности Clarion исторически убоги.
И далее каждый решает эти вопросы в меру возможностей и готов за свою точку зрения загрызть оппонента. :)
Но есть три основных направления:

1. Как деды учили. Здесь утверждается, что оформление программ - это вообще суета, главное функционал.
Из плюсов - классическая тема оформления одинаково убога везде, а это и есть стабильность ! :)
Сюда же нужно отнести и использование перечисленных Вами прибамбасов сторонних разработчиков -
правда ими пользовались (и они выпускались) 15 лет назад.

2. Как SV придумал (это мы). Просто включаем штатный манифест и молимся, что бы всё всегда работало.
В общем-то красиво. Из минусов - последовательно отгребаем все проблемы попо-рукных программистов SV.

3. Сам себе дизайнер. Разработка своего уникального интерфейса, в т.ч. и через Windows API. Бывает круто.
Но обычно всё заканчивается на перекраске окон и навешивании графики. Всё блымает и это реально бесит.
Из минусов - нужно тестировать под всеми Windows и темами - однако трудоёмко для хорошего результата.
Классика всегда в цене. Вам же не придет в голову называть черный смокинг убогим, а пестрый костюм клоуна верхом современной моды. Я наблюдаю на примере веба разные интерфейсы, от большинства из них за версту несет безвкусицей.

Проблема у клариона в том, что сейчас SV плохо тестирует то, что делает. Можно сказать, вообще не тестирует. Сделал программист что-то, это заработало у него на компьютере, вывалили нам. Мы теряем время, пишем о багах. Что-то, если получилось по быстрому или уж совсем никак без исправления, исправляют, под остальное сами подстраивайтесь.

Если подложить к приложению на С6 манифест, то часть интерфейса становится, как в с11. Кнопки, чеки, радио, меню. Прорисовка полей ввода остается. Похожую прорисовку полей ввода, как в С11, и в С6 много лет назад делали. Несколько вариантов закладок, возможность их раскрашивать и размещать пиктограммы в С11. Трутайп шрифты вроде уже не актуальны. Шрифт сегое вместо ширифа подставить можно и в С6, только теряется совместимость со "старыми" мониторам менее 21 дюйма. Добавили png, оказалось, что давным давно подобное решение и в С6 было.
В чем еще заключается "красивость"?
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Clarion 11-12

Сообщение kreator »

Код: Выделить всё

zn# = popup('Пункт1|Пункт2',fFeqX#+fFeqW#/2,fFeqY#+fFeqH#/2,1)
Поставьте последним параметром 0. И скорее всего будет Вам счастье.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Clarion 11-12

Сообщение finsoftrz »

Игорь Столяров писал(а): 08 Август 2021, 14:49
finsoftrz писал(а): 08 Август 2021, 14:40 Вы на более позднем смотрите, и там этот баг пофиксили.
Не могу утвеждать - т.к. не помню. Вы используете релиз февраля 2020 г.
Таки да - в релизах бывают проблемы, которые потом устраняют.
А в чём смысл заявки о проблеме в релизе полутора-годовой давности ?

Сейчас работаем на крайнем релизе C11.1.0.13758
До этого был вполне стабильный релиз C11.0.13630
Обновился до 13630, проблема осталась.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Clarion 11-12

Сообщение finsoftrz »

kreator писал(а): 08 Август 2021, 15:10

Код: Выделить всё

zn# = popup('Пункт1|Пункт2',fFeqX#+fFeqW#/2,fFeqY#+fFeqH#/2,1)
Поставьте последним параметром 0. И скорее всего будет Вам счастье.
Пробовал, не помогает. Еще раз, та же самая процедура, один в один, размещенная в той же dll, откуда вызываем, работает корректно.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Clarion 11-12

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

finsoftrz писал(а): 08 Август 2021, 15:13 Обновился до 13630, проблема осталась.
Я обычно вывожу проблему из натруженного годами кода ... ;)

Вы же юзаете In-Memory ? Там есть штатный пример Multi-DLL.
Попробуйте добавить в любой список кнопку, а в data.app - Вашу процедуру с popup().
И если не заработает - архивируйте папку и сбрасывайте в TEMP FTP - удивимся вместе. :)
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Clarion 11-12

Сообщение kreator »

SergioRaguzini писал(а): 08 Август 2021, 12:49 Коллеги, поделитесь примером (скрином или ссылкой на свою или некую стороннюю программу), которая на сегодняшней день является, на ваш взгляд, не плохой реализацией современного интерфейса выполненного средствами Clarion.
Посмотрите 1С в версии "Такси". Я по-моему приводил ссылки. Они подвели целую теоретическую базу под это, исследование какого-то итальянца привели. Я считаю, что всё очень неплохо.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Clarion 11-12

Сообщение kreator »

finsoftrz писал(а): 08 Август 2021, 15:14 Пробовал, не помогает. Еще раз, та же самая процедура, один в один, размещенная в той же dll, откуда вызываем, работает корректно.
Класс PopupClass так и устроен. Вызов функции popup из другой dll.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Clarion 11-12

Сообщение finsoftrz »

Игорь Столяров писал(а): 08 Август 2021, 15:33
finsoftrz писал(а): 08 Август 2021, 15:13 Обновился до 13630, проблема осталась.
Я обычно вывожу проблему из натруженного годами кода ... ;)

Вы же юзаете In-Memory ? Там есть штатный пример Multi-DLL.
Попробуйте добавить в любой список кнопку, а в data.app - Вашу процедуру с popup().
И если не заработает - архивируйте папку и сбрасывайте в TEMP FTP - удивимся вместе. :)
Не юзаю, но пример могу собрать. Там это работает корректно. Сама процедура и ее экспорт идентичны. Но вызов из виртуальной процедуры и перед ним вызовы других методов абц классов. Я смотрю у себя чистый код. Значит, что-то внутри абц классов дополнительно происходит, костыль стоит. Копаться и разбираться внутри абц классов не очень охота.

Вот видосик, демонстрирующий проблему.

http://finsoftrz.ru/mp4_tmp/popup_bug.mp4
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Clarion 11-12

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

finsoftrz писал(а): 08 Август 2021, 16:58 Я смотрю у себя чистый код
Вы не смотрите чистый код ... Код работает внутри проекта.
Сразу возникает вопрос об опциях сборки проекта - поэтому и хотелось увидеть небольшой пример без наворотов.
Но в таком примере (как и предпологалось) у Вас всё работает. Значит либо что-то не так со сборкой проекта или
откуда-то на компьютере цепляется другой DLL. ABC классы здесь точно не при чём.
Возможно также к DLL и программе прилинкованы отдельные копии RunTime. Или что-то ещё. :)

Вы понимаете разницу в проблеме релиза C11 и проблемой конкретного проекта, которую нельзя воспроизвести
(и приходится показывать на видео) ? 8)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Clarion 11-12

Сообщение finsoftrz »

После обновления версии клариона до C11.0.13630 и код прямо под кнопкой стал себя вести аналогично. Вернул на 13505, код под кнопкой заработал. :shock:

Есть гипотеза, что SV вносит в рантайм изменения для anyscreen, и делает какие-то переназначения в функциях. У меня нет уверенности, что в абц версии и у меня без абц вообще одна и та же функция popup из rtl вызывается. В общем, похоже, подтверждаются опасения, что рантайм начнет терять обратную совместимость из-за изменений в сторону anyscreen.

Хороший вопрос, а нам что делать?
Сама среда, несмотря на многочисленные баги, имеет ряд плюсов по сравнению с С6.
Code complete и всплывающие подсказки в редакторе хорошая штука, реально экономит время.
Меньшая модальность среды. Можно прямо из списка эмбедов процедуры запускать сборку.
Сборка заметно быстрее, чем в С6. Правда, на больших проектах надо проверять. Я отменял всю пересборку, когда добавлялись, например, поля в словаре. Перегенерируются только файлы с декларациями и одна app, которая подвязана на словарь (собирает информацию оттуда). Насколько продвинуты в этом плане солюшены, фик знает.
Солюшены достаточно удобны, не требуется внешний менеджер компиляции.
В целом, я думаю, что производительность разработки на С11 должна быть выше.

Улучшения в интерфейсе в С11 тоже бы пригодились. Но если они продолжат разваливать рантайм, может есть смысл оставаться на хорошо обкатанном С6. Или взять среду от С11 и использовать совместно с компилятором от С6.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Clarion 11-12

Сообщение finsoftrz »

Игорь Столяров писал(а): 08 Август 2021, 17:35 Вы понимаете разницу в проблеме релиза C11 и проблемой конкретного проекта, которую нельзя воспроизвести
(и приходится показывать на видео) ? 8)
Увы, это не проблема конкретного проекта. Как я написал в предыдущем посте, после обновления версии клариона перестал корректно работать даже код под кнопкой. Это проблема связана, судя по всему, с подменой вызовов функций в rtl.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4561
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

Clarion 11-12

Сообщение finsoftrz »

В общем, нашел причину.
В builtins.clw заменил у popup NAME('RisNet:Popup') на NAME('Cla$POPUP') и все заработало корректно.
C6/C11, ШВС, tps/btrieve.
Ответить