Страница 58 из 197
Clarion 11-12
Добавлено: 08 Август 2021, 18:21
finsoftrz
В общем, надо следить за содержимым builtins.clw. Заморочки с anyscreen будут с этой стороны. Ну или как Игорь.

Clarion 11-12
Добавлено: 08 Август 2021, 18:47
Игорь Столяров
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 я проверяю и отслеживаю изменения в них.
Поэтому у Игоря всё и работало ...

Clarion 11-12
Добавлено: 08 Август 2021, 18:59
finsoftrz
Было собрано вначале с anyscreen. А потом там установка осталась в свойствах проекта включенной. Когда собирается с anyscreen, подменяется вызов popup на подобную библиотеку от ris. Игорь просто с anyscreen не успел поработать. В общем, разобрались, откуда проблем можно ждать. Спасибо за активное участие в обсуждении.
Clarion 11-12
Добавлено: 08 Август 2021, 19:07
kreator
У меня не подменяется. Специально посмотрел. Но у меня С11.13758.
Clarion 11-12
Добавлено: 08 Август 2021, 19:10
kreator
Проблему обнаружил. Capesoft ResizeAndSplit валится при инициализации класса. С11.13758.

Clarion 11-12
Добавлено: 08 Август 2021, 20:32
finsoftrz
Подведу итог по возникшей ситуации с popup.
Когда добавляем глобальный экстеншин anyscreen, в нем есть флажок, активен или нет. В зависимости от этого флажка в свойствах проекта устанавливается соответствующая метка в 1 или 0. В builtins.clw, если 1 (anyscreen активен), происходит подмена вызовов ряда стандартных библиотек на специальные версии для anyscreen. Обычные библиотеки остаются с суффиксом _old. Если удалить глобавльный экстеншен из app, как я сделал, то в свойствах проекта остается значение метки в соответствии с последней сборкой. В результате anyscreen вроде уже нет, но библиотеки подменяются, если осталась 1. Поэтому после удаления шаблона anyscreen надо еще удалить его метку в свойствах проекта.
То есть SV старые библиотеки в rtl не трогает, а создает отдельные версии для anyscreen, и подменяет вызовы на них, если сборка происходит с anyscreen. В принципе, все это вполне разумно. Все пропало отменяется.

Clarion 11-12
Добавлено: 08 Август 2021, 21:54
finsoftrz
Немного не так, на память понадеялся. Флажка активности в шаблоне для anyscreen нет. Если шаблон удаляется, то автоматически зачищается и метка в свойствах проекта. Видимо, это стандартные шаблоны делают.
Clarion 11-12
Добавлено: 09 Август 2021, 1:16
kreator
Почему у меня никакой подмены нет? О чём речь? В каком каталоге идёт подмена?
Clarion 11-12
Добавлено: 09 Август 2021, 7:16
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_ в свойствах проекта.
Clarion 11-12
Добавлено: 09 Август 2021, 8:27
finsoftrz
Игорь Столяров писал(а): 08 Август 2021, 15:33
Вы же юзаете In-Memory ? Там есть штатный пример Multi-DLL.
Попробуйте добавить в любой список кнопку, а в data.app - Вашу процедуру с popup().
И если не заработает - архивируйте папку и сбрасывайте в TEMP FTP - удивимся вместе.
Игорь, все еще есть желание удивиться вместе? Архив весит около 3МБ.
Clarion 11-12
Добавлено: 09 Август 2021, 8:55
finsoftrz
На словах, если скомпилить там dll с данными с шалоном anyscreen, а exe без этого шаблона, то увидим обсуждаемый эффект с popup.
То есть, если у нас есть некоторая библиотека, которая используется в разных проектах, часть которых собираются с anyscreen, а часть без, то можем наткнуться на подобные проблемы, связанные с подменой библиотек. Как я понимаю, в этом случае надо собирать 2 разные копии такой библиотеки.
Если удаляем шаблон anyscreen в multi dll проекте, то надо не забыть убедиться, что удалили во всех app проекта, где его добавляли.
Clarion 11-12
Добавлено: 09 Август 2021, 9:02
Игорь Столяров
Да, конечно. С радостью посмотрю. Но пока в папке TMP на FTP ничего нет ...
Я должен сразу сказать, что если Вы пытаетесь вести борьбу или искать правду с AnyScreen -
то это не особо интересно, т.к. не имеет прикладного значения (для меня).
Насколько я понимаю, причина проблемы была названа сразу - проект, в котором были сделаны
и остались какие-то настройки управления компиляцией для AnyScreen, что приводило к неадекватной
работе приложения. При вынесении проблемы в чистый проект - её не стало. Точнее - и не было.

Clarion 11-12
Добавлено: 09 Август 2021, 9:05
Игорь Столяров
finsoftrz писал(а): 09 Август 2021, 8:55
Как я понимаю, в этом случае надо собирать 2 разные копии такой библиотеки.
Даже не понимаю, почему это обсуждается. Это очевидно. Приложение под AnyScreen вообще
не имеет ничего общего с обычным x86 и должно быть пересобрано полностью, включая все библиотеки.
Clarion 11-12
Добавлено: 09 Август 2021, 9:38
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 всё не так. Во всяком случае у меня не так.
Clarion 11-12
Добавлено: 09 Август 2021, 10:20
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, этого достаточно.