Интерфейсы в кларионовских приложениях

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7372
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Интерфейсы в кларионовских приложениях

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

finsoftrz писал(а): 24 Июль 2020, 22:12 ШВС давно не развиваются автором.
Я бы согласился с этим утверждением, если бы среда окружения (Clarion, Windows и т.д.) тоже "не развивались".
Но они развиваются, эволюционируют и дополняются. А потому ШВС (и не только) - заброшены. Я не знаю причин.
Но предположу, что коммерческая бесперспективность и функциональная не оригинальность тоже сыграли свою роль.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7372
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Интерфейсы в кларионовских приложениях

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

finsoftrz писал(а): 24 Июль 2020, 22:19 Чье кунг-фу круче?
Того, кто решил задачу использую штатные средства разработки. ;)
Прекрасно, что у Вас сейчас работает этот ископаемый шаблон и нет проблем совместимости и т.д.
Но это Вы будите проверять при каждом обновлении среды разработки и переносе каждого приложения ...
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

Пока ситуация обратная. Точки вставки не у меня теряются. :-)
Среда и шаблоны не коррелируют. Единственная проблема возникает, когда хочется что-то дернуть из стандартных шаблонов, а св завязали это на абц либу. Хотя мне не нравится сам стиль написания классов у них. Даже если они и не завязаны на абц понять логику работы не так просто. Например, может даже приложение собраться, а потом падать в жпф.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

Игорь, для Вас штатные средства это abc шаблоны и abc библиотека, как черный ящик. Для меня штатные средства это язык шаблонов и язык кларион. Я толлерантно к этому отношусь. :-)
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Интерфейсы в кларионовских приложениях

Сообщение RaFaeL »

Игорь Столяров писал(а): 24 Июль 2020, 20:27 А мне своё время жизни жалко со всем этим разбираться, нет в этом смысла от слова совсем ...
Без "самопальных" шаблонов не получится написать ничего толкового. Используем ресайзер Струменского, штатный не смог в свое время решить задачи нужные. У нас на окне по 4-5 сплиттеров иногда

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

Интерфейсы в кларионовских приложениях

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

RaFaeL писал(а): 25 Июль 2020, 1:41 А вот с чем приходится ловить "глюки", так это с обновлениями Клариона.
Таки да ! Но здесь уже как Родиной - любим такую, какая есть ... ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7372
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Интерфейсы в кларионовских приложениях

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

finsoftrz писал(а): 24 Июль 2020, 22:34 Точки вставки не у меня теряются
Вот неправда Ваша. Повторяя без понимания одно и тоже - Вы потеряли смысл, как в игре "испорченный телефон".
Думаю, что проблему Вы знаете (или рано или поздно узнаете раз начали копать C11). Точки вставки - не теряются.

Есть некое окно, на него навешиваются различные классы - нас сейчас интересуют те, что по шаблоном.
Как штатные (вроде справки), так и самопальные, вроде Вашего ресайза. Это нормально. Как правило их
реализация - это инициализация (и в конце работы - выгрузка) некоего класса, который оперирует с заголовком окна.
Теперь внимание ! В этом процессе критическим является порядок действий. Потому, что если выгружать классы
не в том порядке, что инициализировали - потеряется указатель на заголовок окна и всё станет колом.

О проблеме. Бывает так, что прекрасно отлаженный автором в 1900-лохматом году шаблон для C5 ведёт себя
неадекватно в C10/C11 (да и C63 тоже). "Съезжает" одна вставка его инициализации или выгрузки, относительно
других классов и всё переклинивает. Причём происходит это порой непредсказуемо. :( Вот в чём беда.

К автору всей этой радости - претензий нет. Разработчик просто не мог угадать условия, в которых будет работать
его продукт через 15-20 лет, совсем в другом окружении шаблонов и классов ... Поэтому моя субъективная точка
зрения: не надо юзать без крайней необходимости самопальные шаблоны, заброшенные автором. Здесь такой необходимости нет.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

Игорь, Вы просто в другом мире живете. У нас (в ШВС) нет таких проблем. Это, насколько я понимаю, чисто проблема ABC.
Почему должен теряться указатель на заголовок окна? Относительно классов он константа. Надо просто инициализировать класс после открытия окна, а убить класс до закрытия окна, и все. А это вполне определенные точки вставки. В ABC есть корреляция классов друг с другом, которую сложно отслеживать. Плюс их ухищрения с виртуальными методами, интерфейсам. Все это не способствует разработке надежного кода. Они даже специальную версию рантайма предлагают, чтобы отслеживать gpf, у capesoft есть соответствующий инструмент (если не ошибаюсь, что-то наподобии gpf reporter). Я не принимаю такого подхода. У нас есть компилятор, который должен четко верифицировать код. Даже некоторые шаблоны подкладывают компилятору служебный код. Например, для строкового выражения фильтра генерится что-то типа if <выражение>=0 end. Поэтому gpf бывают очень редко и легко локализуются.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

Поговорим про сплиттеры, раз затронули тему с ресайзом. У меня исторически используется сплиттер Руденко. В одном окне бывает либо вертикальный (например, отделяет группы от элементов в справочниках товаров, контрагентов и т.п.), либо горизонтальный (в некоторых журналах документов разделяет заголовки в верхнем списке и содержимое в нижнем). Больше одного сплиттера не встречается, хотя технически это возможно. В среде С6 (С11 все аналогично, мне просто проще из С6 дергать скрины) сплиттер определяется, как регион определенного размера. На следующем скрине его видно.
resize_7.jpg
resize_7.jpg (163.95 КБ) 1500 просмотров
На следующем скриншоте диалог настройки горизонтального сплиттера. Там видны кнопки для отметки связанных контролов по функциональному назначению.
resize_8.jpg
resize_8.jpg (176.49 КБ) 1500 просмотров
На следующем скриншоте показано, как взаимодействует ресайзер Струменского со сплиттером. Ему вписывается простая формула, позволяющая осуществлять ресайз с учетом положения разделительного региона.
resize_9.jpg
resize_9.jpg (165.49 КБ) 1500 просмотров
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

Результат в работе. Наводим мышку на регион, курсор меняет форму. Нажимаем mouse left, тащим регион вниз, отпускаем. Размер и положение задействованных контролов изменяются.
resize_6.jpg
resize_6.jpg (204.99 КБ) 1500 просмотров
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7372
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Интерфейсы в кларионовских приложениях

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

finsoftrz писал(а): 25 Июль 2020, 7:09 Почему должен теряться указатель на заголовок окна?
Как в простоте своей сабклассится окно ?
Запоминаем существующий указатель и заменяем его на указатель своего обработчика. По завершению обработки
передаём управление на сохранённый указатель. Когда выгружаем обработку (при закрытии окна) просто восстанавливаем
сохранённый указатель. В реале этот процесс каскадный - т.е. на окно вешается несколько обработчиков и важен порядок.
И да, мир ABC он другой, но конкретно шаблоны RESIZE одинаковые и в Legacy и в ABC ... :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

При сабклассинге меняется не указатель на окно, а адрес процедуры для обработки внешних событий, которые не пропускает accept. В этой процедуре мы отслеживаем нужные события, а потом передаем управление на стандартную.
Сабклассинг это воркаут для стандартной работы accept. Его применение показано в специфических случаях. Например, при работе с сокетами в качестве сервера. А дальше, как сами код напишите.

По поводу ШВС и ABC. Понимаете, для Вас библиотека и шаблоны ABC являются стандартными. Все остальное Вы почему-то называете легаси, самопал и т.п. Очень на религию похоже. Между тем, Вы знаете, как работает Заунер? Он, по сути, менеджер. Собирает какие-то идеи и готовые разработки (тот же самый "самопал"), отдает заказы в офшор. Ему что-то кто-то пишет, он включает в состав дистрибутива. Для меня как раз ровно наоборот, ресайзер Струменского является стандартным. Он хорошо и правильно сделан, обкатан, его автор один из сильнейших русскоязычных кларионистов. А кто штатный ресайзер делал, я не знаю. Вижу, что в результате получилось, и сравниваю.
Вы, кстати, так и не прокомментировали логику работы штатного ресайзера. По скриншотам ничего не понятно, а читать документацию лениво, это чисто для информации и общего понимания идеи.

Кстати, Игорь, то, что Вы не используете язык шаблонов, сильно ограничивает Ваши возможности как разработчика. Реально. Это одна из самых мощных технологий в кларионе, не стоит ее игнорировать. Потратите некоторое время, мир засияет новыми красками. ABC это надстройка, кому нужна, кому нет. Языковые средства, рантайм и сама среда разработки это база. Хотя есть еще популяция кларионистов, которые предпочитают hand code. В чем-то это имеет свои плюсы.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7372
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Интерфейсы в кларионовских приложениях

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

finsoftrz писал(а): 25 Июль 2020, 8:45 Вы, кстати, так и не прокомментировали логику работы штатного ресайзера.
Вы просили пример для расширения кругозора - я показал. А далее уже самостоятельно - если интересно. ;)
Я же Вас не переманиваю как клиента, мы просто делимся точками зрения на возможности среды разработки.
finsoftrz писал(а): 25 Июль 2020, 8:45 то, что Вы не используете язык шаблонов, сильно ограничивает
Уф ! Использовал, да так что на две жизни хватит. Мне в студенческие годы досталась большая питерская система
учёта на военной базе на CPD2.1 в исходниках с полностью переделанными шаблонами. Точнее она просто была
практически вся написана на языке шаблонов. Я не знаю почему и зачем, но несколько лет я её так и поддерживал.
Если кратко, то где-то к C4 мне этот мартышкин труд надоел и мы пошли другим путём - функционал реализуется
на уровне кода, а шаблонами добавлялся только эксклюзивный код. На C5 перешли на ABC, далее поняли что рисование
рюшечек и прочих украшательств только создаёт проблемы при смене Windows и тем оформления.
Поэтому сейчас оконных шаблонов названных в честь канувших в лету авторов - не юзаем. Совсем. А зачем ? :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

В CPD 2.1 не было языка шаблонов, в том смысле, как сейчас. Был небольшой модельный файл, который обычно минимально подправляли. Шаблоны как язык, по моему, появились в CDD 3, который быстро ушел с рынка, а оформились в технологию в виндовом кларионе.

Шаблоны не только же оконные. Там целая хорошо продуманная система. Есть костях системы, отвечающий за кодогенерацию и создание основного каркаса системы. Есть глобальные экстеншены, которые позволяют модифицировать код во всех или определенных процедрах app или выполнять какие-то глобальные вставки кода, включая декларации. Есть процедурные шаблоны, создающие процедуры с определенной логикой работы, есть процедурные экстеншены, есть кодовые шаблоны, есть утилитные шаблоны и визарды. Главное, что все в сырцах. И в процедурных шаблонах было очень просто понять логику работы. Смотришь код, который сгенерен, все достаточно прозрачно. И со своими шаблонами аналогично. Пишешь шаблон, смотришь, какой код он создал, идешь дальше. По сути, ты ограничен только своей фантазией в автоматизации производственного процесса.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4615
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 37 раз

Интерфейсы в кларионовских приложениях

Сообщение finsoftrz »

Да никуда авторы не канули. Струменский жив здоров, появляется иногда в клалист. Аналогично и Синявский, по имени которого названы ШВС. Руденко и этот форум читает, появлялся тут несколько раз. Просто у всех свои дела в реальной жизни. Это мы тут от скуки трепемся. Я думаю, просто период такой. Скоро тоже уйдем в оффлайн. Ну или не совсем, а частично. Все же много времени чтение и писанина занимают, ослабляют концентрацию внимания при разработке. Если не ошибаюсь, тот же Струменский писал, что читает информацию в интернете раз в неделю. Я, кстати, аналогично, раз в неделю просматриваю темы в англоязычных группах. А здесь почему-то пока тянет на треп. :-)
C6/C11, ШВС, tps/btrieve.
Ответить