Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Иногда в приложении (APP) отваливаются точки вставки исходного кода по разным причинам.
Например: удалён контрол к которому привязан вставленный код или расхождение
точек вставки в различных версиях шаблонов (на рисунке пример конвертации из C63 в C11):
1.jpg (25.78 КБ) 4480 просмотров
Внимание вопрос ! А можно ли неким, волшебным способом, поиметь список этих потерянных EMBEDS ?
Или список процедур APP в которых присутствуют такие потерянные EMBEDS ?
Потому, что получается, что компилятор такие потери не ловит, а приложение теряет часть функционала
и это достаточно сложно отловить. Заранее спасибо !
В теме указано "при конвертации", но мне показалось, есть закономерность в потери Embeds и в обычных случаях и происходит это в ситуации, когда, например, открываешь процедуру, знаешь, что где-то внутри есть искомый кусок кода, потом открываешь Source, открывается весь исходный текст - там находишь (через F3, например) и редактируешь нужное, потом закрываешь с сохранением - и все, хана, все смешалось и(-или) потеряно. Более того, даже если выйти из процедуры по "Отмене" - ничего не восстанавливается. Причем такое происходит не всегда, но для себя уже давно решил - если что нужно найти по F3 в коде процедуры - только нахожу и закрываю без изменений, а потом уже редактирую нужное по кнопке Embeds . Последний раз с этим сталкивался на прошлой неделе, и это была Browse-процедура, где были использованы дополнительные 3rdParty-Template (может от них косячит, я как-то тоже конвертировал и косяк был на проседуре в которой были 3rdParty-Template).
А вот по поводу восстановления - у меня заканчивается только использованием резервной копии (т.к. не уверен потом в правильности написанного ранее)
Часто редактирую код в Source в с6, никаких проблем не наблюдал.
Архангелы только при удалении контролов, к которым был привязан заполненный embed.
Возможно, это от шаблонов зависит.
Сергей, насколько я знаю, тоже в С6 работает. Скорее всего, это проблема связана с используемыми шаблонами. Например, когда глобальный экстеншен размещает процедурные экстеншены. Я такое стараюсь не использовать.
finsoftrz писал(а): 04 Октябрь 2020, 12:27
Скорее всего, это проблема связана с используемыми шаблонами.
Конкретно на картинке в первом сообщении - проблема связанная с тем, что в штатных шаблонах C11 ABC
нет точки вставки для события DoResize Window, а в штатных шаблонах C63 - такая точка вставки есть.
При переносе APP из C63 в С11 - вставка отваливается. Причём само событие - есть, но надо делать
его обработку вручную ...
kreator писал(а): 04 Октябрь 2020, 14:12
В С11 беда c embeds. Теряются на раз два.
И неужели нет какого-нибудь чудесного механизма, что бы это контролировать ?
Сужу по себе: если порыться в большом проекте - обязательно найдётся где-нибудь отвалившийся Embed.
Я вот сегодня нашёл пару, и сразу возник вопрос: а сколько таких ещё ? И главное: таки где они ?
Igor Vesnin писал(а): 06 Октябрь 2020, 1:40
Попробуйте древнюю утилитку
Француженка ! Спасибо ! Мне больше всего в этой истории было непонятно, почему
столь простой и нужный функционал не реализован в штатной среде или хотя бы
сторонним разработчиком. Теперь всё встало на свои места.