Clarion 11-12

Clarion, Clarion 7

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

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

Clarion 11-12

Сообщение finsoftrz »

В общем, надо следить за содержимым builtins.clw. Заморочки с anyscreen будут с этой стороны. Ну или как Игорь. :-)
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8031
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Clarion 11-12

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

finsoftrz писал(а): 08 Август 2021, 18:09 В builtins.clw заменил у popup NAME('RisNet:Popup') на NAME('Cla$POPUP')
Так Вы же расскажите всю историю ... При чём здесь AnyScreen ? У всех AnyScreen ... ;)

В файле builtins.clw C11 и так указано NAME('Cla$POPUP').
Может быть причина проблемы в том, что Вы подменяете системные исходники (из C63 ?) и просто об этом забыли ? ;)

У меня изменены 4 файла из LibSrc. При каждом обновлении версии Clarion я проверяю и отслеживаю изменения в них.
Поэтому у Игоря всё и работало ... :nr:
Make Clarion Great Again ! 😎
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5239
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 65 раз

Clarion 11-12

Сообщение finsoftrz »

Было собрано вначале с anyscreen. А потом там установка осталась в свойствах проекта включенной. Когда собирается с anyscreen, подменяется вызов popup на подобную библиотеку от ris. Игорь просто с anyscreen не успел поработать. В общем, разобрались, откуда проблем можно ждать. Спасибо за активное участие в обсуждении.
C6/C12, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Clarion 11-12

Сообщение kreator »

У меня не подменяется. Специально посмотрел. Но у меня С11.13758.
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Clarion 11-12

Сообщение kreator »

Проблему обнаружил. Capesoft ResizeAndSplit валится при инициализации класса. С11.13758. :cry:
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5239
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 65 раз

Clarion 11-12

Сообщение finsoftrz »

Подведу итог по возникшей ситуации с popup.
Когда добавляем глобальный экстеншин anyscreen, в нем есть флажок, активен или нет. В зависимости от этого флажка в свойствах проекта устанавливается соответствующая метка в 1 или 0. В builtins.clw, если 1 (anyscreen активен), происходит подмена вызовов ряда стандартных библиотек на специальные версии для anyscreen. Обычные библиотеки остаются с суффиксом _old. Если удалить глобавльный экстеншен из app, как я сделал, то в свойствах проекта остается значение метки в соответствии с последней сборкой. В результате anyscreen вроде уже нет, но библиотеки подменяются, если осталась 1. Поэтому после удаления шаблона anyscreen надо еще удалить его метку в свойствах проекта.

То есть SV старые библиотеки в rtl не трогает, а создает отдельные версии для anyscreen, и подменяет вызовы на них, если сборка происходит с anyscreen. В принципе, все это вполне разумно. Все пропало отменяется. :-)
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5239
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 65 раз

Clarion 11-12

Сообщение finsoftrz »

Немного не так, на память понадеялся. Флажка активности в шаблоне для anyscreen нет. Если шаблон удаляется, то автоматически зачищается и метка в свойствах проекта. Видимо, это стандартные шаблоны делают.
C6/C12, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Clarion 11-12

Сообщение kreator »

Почему у меня никакой подмены нет? О чём речь? В каком каталоге идёт подмена?
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5239
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 65 раз

Clarion 11-12

Сообщение finsoftrz »

В libscr\win в файле builtins.clw есть строки

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

COMPILE('***',_AnyScreenPresent_)
...
POPUP(STRING selections, SIGNED x=_nopos,SIGNED y=_nopos,BYTE relPos=FALSE),SIGNED,NAME('RisNet:Popup')
Когда добавляем к app глобальный экстеншин для работы с anyscreen, то он при сборке устанавливает прагму _AnyScreenPresent_ в свойствах проекта.
anyscreen_pragma.jpg
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5239
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 65 раз

Clarion 11-12

Сообщение finsoftrz »

Игорь Столяров писал(а): 08 Август 2021, 15:33 Вы же юзаете In-Memory ? Там есть штатный пример Multi-DLL.
Попробуйте добавить в любой список кнопку, а в data.app - Вашу процедуру с popup().
И если не заработает - архивируйте папку и сбрасывайте в TEMP FTP - удивимся вместе. :)
Игорь, все еще есть желание удивиться вместе? Архив весит около 3МБ.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5239
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 65 раз

Clarion 11-12

Сообщение finsoftrz »

На словах, если скомпилить там dll с данными с шалоном anyscreen, а exe без этого шаблона, то увидим обсуждаемый эффект с popup.
То есть, если у нас есть некоторая библиотека, которая используется в разных проектах, часть которых собираются с anyscreen, а часть без, то можем наткнуться на подобные проблемы, связанные с подменой библиотек. Как я понимаю, в этом случае надо собирать 2 разные копии такой библиотеки.
Если удаляем шаблон anyscreen в multi dll проекте, то надо не забыть убедиться, что удалили во всех app проекта, где его добавляли.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8031
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Clarion 11-12

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

Да, конечно. С радостью посмотрю. Но пока в папке TMP на FTP ничего нет ...

Я должен сразу сказать, что если Вы пытаетесь вести борьбу или искать правду с AnyScreen -
то это не особо интересно, т.к. не имеет прикладного значения (для меня).

Насколько я понимаю, причина проблемы была названа сразу - проект, в котором были сделаны
и остались какие-то настройки управления компиляцией для AnyScreen, что приводило к неадекватной
работе приложения. При вынесении проблемы в чистый проект - её не стало. Точнее - и не было. :)
Make Clarion Great Again ! 😎
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8031
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 96 раз

Clarion 11-12

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

finsoftrz писал(а): 09 Август 2021, 8:55 Как я понимаю, в этом случае надо собирать 2 разные копии такой библиотеки.
Даже не понимаю, почему это обсуждается. Это очевидно. Приложение под AnyScreen вообще
не имеет ничего общего с обычным x86 и должно быть пересобрано полностью, включая все библиотеки.
Make Clarion Great Again ! 😎
kreator
✯ Ветеран ✯
Сообщения: 5161
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Clarion 11-12

Сообщение kreator »

finsoftrz писал(а): 09 Август 2021, 7:16 В libscr\win в файле builtins.clw есть строки

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

COMPILE('***',_AnyScreenPresent_)
...
POPUP(STRING selections, SIGNED x=_nopos,SIGNED y=_nopos,BYTE relPos=FALSE),SIGNED,NAME('RisNet:Popup')
Когда добавляем к app глобальный экстеншин для работы с anyscreen, то он при сборке устанавливает прагму _AnyScreenPresent_ в свойствах проекта.
anyscreen_pragma.jpg
Поменяйте версию. В C11.13758 всё не так. Во всяком случае у меня не так.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5239
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 12 раз
Поблагодарили: 65 раз

Clarion 11-12

Сообщение finsoftrz »

kreator писал(а): 09 Август 2021, 9:38
finsoftrz писал(а): 09 Август 2021, 7:16 В libscr\win в файле builtins.clw есть строки

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

COMPILE('***',_AnyScreenPresent_)
...
POPUP(STRING selections, SIGNED x=_nopos,SIGNED y=_nopos,BYTE relPos=FALSE),SIGNED,NAME('RisNet:Popup')
Когда добавляем к app глобальный экстеншин для работы с anyscreen, то он при сборке устанавливает прагму _AnyScreenPresent_ в свойствах проекта.

anyscreen_pragma.jpg
Поменяйте версию. В C11.13758 всё не так. Во всяком случае у меня не так.
Я читал, что в последней версии они что-то изменили в использовании библиотек rtl. Возможно, из-за озвученных граблей. Мне тема с anyscreen не очень сейчас близка. Я выяснил причину, почему у меня некоррестно работал Popup, этого достаточно.
C6/C12, ШВС, tps/btrieve.
Ответить