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

C6/C12, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8031
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
Clarion 11-12
Так Вы же расскажите всю историю ... При чём здесь AnyScreen ? У всех AnyScreen ...finsoftrz писал(а): 08 Август 2021, 18:09 В builtins.clw заменил у popup NAME('RisNet:Popup') на NAME('Cla$POPUP')

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

У меня изменены 4 файла из LibSrc. При каждом обновлении версии Clarion я проверяю и отслеживаю изменения в них.
Поэтому у Игоря всё и работало ...

Make Clarion Great Again ! 
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5238
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
Clarion 11-12
Было собрано вначале с anyscreen. А потом там установка осталась в свойствах проекта включенной. Когда собирается с anyscreen, подменяется вызов popup на подобную библиотеку от ris. Игорь просто с anyscreen не успел поработать. В общем, разобрались, откуда проблем можно ждать. Спасибо за активное участие в обсуждении.
C6/C12, ШВС, tps/btrieve.
-
- ✯ Ветеран ✯
- Сообщения: 5160
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Clarion 11-12
У меня не подменяется. Специально посмотрел. Но у меня С11.13758.
We are hard at work… for you. 

-
- ✯ Ветеран ✯
- Сообщения: 5160
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Clarion 11-12
Проблему обнаружил. Capesoft ResizeAndSplit валится при инициализации класса. С11.13758. 

We are hard at work… for you. 

- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5238
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
Clarion 11-12
Подведу итог по возникшей ситуации с popup.
Когда добавляем глобальный экстеншин anyscreen, в нем есть флажок, активен или нет. В зависимости от этого флажка в свойствах проекта устанавливается соответствующая метка в 1 или 0. В builtins.clw, если 1 (anyscreen активен), происходит подмена вызовов ряда стандартных библиотек на специальные версии для anyscreen. Обычные библиотеки остаются с суффиксом _old. Если удалить глобавльный экстеншен из app, как я сделал, то в свойствах проекта остается значение метки в соответствии с последней сборкой. В результате anyscreen вроде уже нет, но библиотеки подменяются, если осталась 1. Поэтому после удаления шаблона anyscreen надо еще удалить его метку в свойствах проекта.
То есть SV старые библиотеки в rtl не трогает, а создает отдельные версии для anyscreen, и подменяет вызовы на них, если сборка происходит с anyscreen. В принципе, все это вполне разумно. Все пропало отменяется.
Когда добавляем глобальный экстеншин anyscreen, в нем есть флажок, активен или нет. В зависимости от этого флажка в свойствах проекта устанавливается соответствующая метка в 1 или 0. В builtins.clw, если 1 (anyscreen активен), происходит подмена вызовов ряда стандартных библиотек на специальные версии для anyscreen. Обычные библиотеки остаются с суффиксом _old. Если удалить глобавльный экстеншен из app, как я сделал, то в свойствах проекта остается значение метки в соответствии с последней сборкой. В результате anyscreen вроде уже нет, но библиотеки подменяются, если осталась 1. Поэтому после удаления шаблона anyscreen надо еще удалить его метку в свойствах проекта.
То есть SV старые библиотеки в rtl не трогает, а создает отдельные версии для anyscreen, и подменяет вызовы на них, если сборка происходит с anyscreen. В принципе, все это вполне разумно. Все пропало отменяется.

C6/C12, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5238
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
Clarion 11-12
Немного не так, на память понадеялся. Флажка активности в шаблоне для anyscreen нет. Если шаблон удаляется, то автоматически зачищается и метка в свойствах проекта. Видимо, это стандартные шаблоны делают.
C6/C12, ШВС, tps/btrieve.
-
- ✯ Ветеран ✯
- Сообщения: 5160
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Clarion 11-12
Почему у меня никакой подмены нет? О чём речь? В каком каталоге идёт подмена?
We are hard at work… for you. 

- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5238
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
Clarion 11-12
В libscr\win в файле builtins.clw есть строки
Когда добавляем к app глобальный экстеншин для работы с anyscreen, то он при сборке устанавливает прагму _AnyScreenPresent_ в свойствах проекта.
Код: Выделить всё
COMPILE('***',_AnyScreenPresent_)
...
POPUP(STRING selections, SIGNED x=_nopos,SIGNED y=_nopos,BYTE relPos=FALSE),SIGNED,NAME('RisNet:Popup')
C6/C12, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5238
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
Clarion 11-12
Игорь, все еще есть желание удивиться вместе? Архив весит около 3МБ.Игорь Столяров писал(а): 08 Август 2021, 15:33 Вы же юзаете In-Memory ? Там есть штатный пример Multi-DLL.
Попробуйте добавить в любой список кнопку, а в data.app - Вашу процедуру с popup().
И если не заработает - архивируйте папку и сбрасывайте в TEMP FTP - удивимся вместе.![]()
C6/C12, ШВС, tps/btrieve.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5238
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
Clarion 11-12
На словах, если скомпилить там dll с данными с шалоном anyscreen, а exe без этого шаблона, то увидим обсуждаемый эффект с popup.
То есть, если у нас есть некоторая библиотека, которая используется в разных проектах, часть которых собираются с anyscreen, а часть без, то можем наткнуться на подобные проблемы, связанные с подменой библиотек. Как я понимаю, в этом случае надо собирать 2 разные копии такой библиотеки.
Если удаляем шаблон anyscreen в multi dll проекте, то надо не забыть убедиться, что удалили во всех app проекта, где его добавляли.
То есть, если у нас есть некоторая библиотека, которая используется в разных проектах, часть которых собираются с anyscreen, а часть без, то можем наткнуться на подобные проблемы, связанные с подменой библиотек. Как я понимаю, в этом случае надо собирать 2 разные копии такой библиотеки.
Если удаляем шаблон anyscreen в multi dll проекте, то надо не забыть убедиться, что удалили во всех app проекта, где его добавляли.
C6/C12, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 8031
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
Clarion 11-12
Да, конечно. С радостью посмотрю. Но пока в папке TMP на FTP ничего нет ...
Я должен сразу сказать, что если Вы пытаетесь вести борьбу или искать правду с AnyScreen -
то это не особо интересно, т.к. не имеет прикладного значения (для меня).
Насколько я понимаю, причина проблемы была названа сразу - проект, в котором были сделаны
и остались какие-то настройки управления компиляцией для AnyScreen, что приводило к неадекватной
работе приложения. При вынесении проблемы в чистый проект - её не стало. Точнее - и не было.
Я должен сразу сказать, что если Вы пытаетесь вести борьбу или искать правду с AnyScreen -
то это не особо интересно, т.к. не имеет прикладного значения (для меня).
Насколько я понимаю, причина проблемы была названа сразу - проект, в котором были сделаны
и остались какие-то настройки управления компиляцией для AnyScreen, что приводило к неадекватной
работе приложения. При вынесении проблемы в чистый проект - её не стало. Точнее - и не было.

Make Clarion Great Again ! 
- Игорь Столяров
- Ветеран движения
- Сообщения: 8031
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
Clarion 11-12
Даже не понимаю, почему это обсуждается. Это очевидно. Приложение под AnyScreen вообщеfinsoftrz писал(а): 09 Август 2021, 8:55 Как я понимаю, в этом случае надо собирать 2 разные копии такой библиотеки.
не имеет ничего общего с обычным x86 и должно быть пересобрано полностью, включая все библиотеки.
Make Clarion Great Again ! 
-
- ✯ Ветеран ✯
- Сообщения: 5160
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Clarion 11-12
Поменяйте версию. В C11.13758 всё не так. Во всяком случае у меня не так.finsoftrz писал(а): 09 Август 2021, 7:16 В libscr\win в файле builtins.clw есть строкиКогда добавляем к app глобальный экстеншин для работы с anyscreen, то он при сборке устанавливает прагму _AnyScreenPresent_ в свойствах проекта.Код: Выделить всё
COMPILE('***',_AnyScreenPresent_) ... POPUP(STRING selections, SIGNED x=_nopos,SIGNED y=_nopos,BYTE relPos=FALSE),SIGNED,NAME('RisNet:Popup')
We are hard at work… for you. 

- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5238
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 12 раз
- Поблагодарили: 65 раз
Clarion 11-12
Я читал, что в последней версии они что-то изменили в использовании библиотек rtl. Возможно, из-за озвученных граблей. Мне тема с anyscreen не очень сейчас близка. Я выяснил причину, почему у меня некоррестно работал Popup, этого достаточно.kreator писал(а): 09 Август 2021, 9:38Поменяйте версию. В C11.13758 всё не так. Во всяком случае у меня не так.finsoftrz писал(а): 09 Август 2021, 7:16 В libscr\win в файле builtins.clw есть строкиКогда добавляем к app глобальный экстеншин для работы с anyscreen, то он при сборке устанавливает прагму _AnyScreenPresent_ в свойствах проекта.Код: Выделить всё
COMPILE('***',_AnyScreenPresent_) ... POPUP(STRING selections, SIGNED x=_nopos,SIGNED y=_nopos,BYTE relPos=FALSE),SIGNED,NAME('RisNet:Popup')
anyscreen_pragma.jpg
C6/C12, ШВС, tps/btrieve.