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

Clarion, Clarion 7

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

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

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

Сообщение finsoftrz »

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

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

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

finsoftrz писал(а): 14 Июль 2020, 0:31 Рабочий стол это просто максимизированное окно
Дошло. :) По сути "Рабочий стол" - это обычное окно с иконами, рисунками, регионами и т.д. - т.е. полноэкранный плавающий TOOLBAR.
А я нехорошо думал на свободную область APPFRAME - есть шаблон по накладыванию на неё окна с контролами. :)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4566
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

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

Сообщение finsoftrz »

Да, обычное окно. При открытии его размеры устанавливаются так, чтобы закрывало рабочую область фрейма, и, соответственно, другие окна.
Я одно время рассматривал такую возможность. Но так и не созрел. Несколько сложновато получается. Если автоматически подтягивать иконки и названия из оконных процедур, которые хотим запускать (крупные картинки можно определять по названию иконки), то, по сути, надо еще кучу картинок к приложению подложить. И многие окна имеют одинаковые иконки, на столе будет смотреться не очень. Если давать пользователю возможность выбирать картинки вручную, то картинка на рабочем столе не будет соответствовать иконке окна, что тоже не айс. Слишком непропорциональное утяжеление проекта относительно получаемых дивидентов. Для менее объемных приложений с ограниченным количеством оконных процедур может и подойти.
C6/C11, ШВС, tps/btrieve.
kreator
✯ Ветеран ✯
Сообщения: 4961
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

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

Сообщение kreator »

Дед Пахом писал(а): 13 Июль 2020, 22:06
Игорь Столяров писал(а): 13 Июль 2020, 21:58 гибрид кнопки со стрелкой и выпадающим popup списком
Это ещё до моего рождения кто-то делал.
На clarionlife.net в разделе "Файлы" был пример (по-моему от Мялина). Конечно, от безысходности, на безрыбье и рак рыба. Если речь не про то или я ошибаюсь, ткните в нужное место, я бы посмотрел.
Игорь Столяров писал(а): 13 Июль 2020, 18:29 Так или иначе - в Clarion есть ограничение на виды контролов. OLE / VB объекты - это так себе решение, не бест.
Приложение на Clarion - практически всегда видно за километр: те же LIST, те же FORM …
По-большому счёту у меня претензия только к List. В основном по функционалу и работе (управлению). Внешний вид - более-менее. А то, что видно за километр, это вина разраба. В начале карьеры сделал окно визардом и пошёл его копировать. А когда окон уже сделано 100+, переделывать понятно желания нет, особенно при том, что это вряд ли монетизируется. Была бы возможность автоматом переделать на новый "шаблон".
RaFaeL писал(а): 13 Июль 2020, 22:04
kreator писал(а): 13 Июль 2020, 17:03Попробуйте.
Так и как сделано?
Если народу интересно, могу выпилить из проекта в отдельное тестовое App. На самом деле, это идея ещё, по-моему, из ClaMag'а лохматых годов, там и пример есть. Я немного переделал.
We are hard at work… for you. :)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4566
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

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

Сообщение finsoftrz »

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

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

Сообщение finsoftrz »

Вот, дернул из известной в определенных кругах программы на С++.
На первом скрине настраиваемый рабочий стол (можно выбирать из списка через контекстное меню) и вертикально дерево меню (автоматически дублируется из основного меню при включении режима показа).
pp_01.jpg
pp_01.jpg (181.69 КБ) 1986 просмотров
На следующем скрине видно, что окна вписываются в область справа от вертикального меню. В контекстном меню используют горячие клавиши. У окна свой тулбар с иконками, почти перекрывающий контекстное меню. Тут не видно, в основном меню иконок и горячих клавиш не используют.
pp_02.jpg
pp_02.jpg (341.66 КБ) 1986 просмотров
Дальше форма ввода. Шрифт, похоже, clear type (я их не очень идентифицирую), вокруг полей ввода границы, выделяют активное цветом.
pp_03.jpg
pp_03.jpg (279.42 КБ) 1986 просмотров
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4566
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

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

Сообщение finsoftrz »

Воткну свежий ролик, условно можно и к интерфейсам отнести. На тему включения настраиваемых экселевских бланков в оконные диалоги.
Бланк это обычный текстовый файл в одном из подкаталогов программы. В ролике показывается наиболее функциональная схема работы через мастер-процедуры. Вообще говоря, чаще используется более простой вариант без мастер-процедур, когда класс обработчика может вызываться в любом месте программы, ему передается название бланка и используются согласованные названия деталек и переменных.
Мастер-процедуры это обычные source процедуры с extension шаблоном. Мастер-процедура привязывается к определенному диалогу, в котором включена возможность использовать расширяемый набор бланков. Это обычно документы или справочники.
В ролике видно, что при создании бланка формы из мастер-процедуры в рантайм подтягиваются списки используемых в ней таблиц, переменных и функций. В мастер-процедуру автоматически передается тип бланка, чтобы можно было ветвить различные варианты логики обработки (всякие сложные группировки, промежуточные итоги и т.п.).
Вывод результата происходит напрямую в xls файл, поэтому очень быстро, а результат может использоваться любым из офисных пакетов, поддерживающих работу с xls. При использовании мастер-процедур автоматически поддерживается функционал, подобный report структуре - разбиение на страницы, вывод заголовков и подвалов страниц, перенос повисших деток, автопереносы длинных строк. В конце ролика показан бонус. На основании бланка может создаваться не только xls, но и обычная встроенная report структура, которая не требует наличия офисных пакетов.

http://finsoftrz.ru/mp4/fs_demo0010.htm
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение RaFaeL »

RaFaeL писал(а): 18 Июнь 2020, 18:10
Игорь Столяров писал(а): 18 Июнь 2020, 17:51 Тут, действительно, можно зайти с разных сторон - но большинстве случаев достаточно штатного шаблона Clarion.
Спасибо, включил. Не знаю, почему не было включено. Наверное потому что никто не жаловался? ) А может с чем-то конфликтует и отключили. Понаблюдаю. А меню в трее свое, еще с тех времен, когда в шаблоне такого и не было, оно там динамическое
Ну и ч.т.д.: после включения шаблона программа перестала адекватно закрываться на Windows 2008 Server в терминале (и думаю что не только в ней) - выдает на закрытии "приложение не отвечает". Видимо, какой-то конфликт. Вернул как было )
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7337
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

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

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

RaFaeL писал(а): 21 Июль 2020, 19:51 после включения шаблона программа перестала адекватно закрываться
Не наблюдаю такого, причём во многих местах и на протяжении многих лет.
У Вас на AppFrame не навешано ничего через субклассинг вручную или шаблонами, которые на момент выпуска не знали о существовании Win 2008 ?
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4961
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

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

Сообщение kreator »

Игорь Столяров писал(а): 21 Июль 2020, 20:56 У Вас на AppFrame не навешано ничего через субклассинг вручную или шаблонами, которые на момент выпуска не знали о существовании Win 2008 ?
Риббон, например. У меня тот самый шаблон работает лет сто, везде, и везде без проблем.
We are hard at work… for you. :)
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение RaFaeL »

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

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

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

RaFaeL писал(а): 21 Июль 2020, 23:38 Я ж сразу написал, не просто так оно не подключено было
Значит - это особый случай, не совместимый с штатным решением.
И нужно искать другой способ - потому, что программа не должна блокировать завершение работы Windows.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4566
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

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

Сообщение finsoftrz »

Проверил у себя, при выключении (перезапуске) винды и запущенной программе выводится сообщение, что приложение активно и предлагает нажать кнопку для принудительного закрытия.

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

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

Сообщение finsoftrz »

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

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

Сообщение finsoftrz »

Еще по поводу выключения и перезагрузки винды. "Стиль" - запрашивается принудительный выход, "Папирус" - выключает молча. "1С8" при выключении перехватывает и работает, как при закрытии приложения, запрашивая сохранение изменений в каждой форме. В "1С8" выглядит наиболее логично. Как это сделать на кларионе, фик знает, надо в win api копаться. Да и надо ли...
C6/C11, ШВС, tps/btrieve.
Ответить