Страница 2 из 5

ABC, popup в Browse

Добавлено: 01 Апрель 2023, 19:15
finsoftrz
Действительно, есть подобное. Не хватает условия неактивности пункта меню. В ШВС изначально этого тоже не было, специально добавлял такую опцию. Логика сложнее, чем в ШВС, больше работы, надо заполнять дополнительные промпты, возможно, из-за универсальности. Хоть так.

ABC, popup в Browse

Добавлено: 01 Апрель 2023, 19:37
kreator
Игорь Столяров писал(а): 01 Апрель 2023, 18:14
Дед Пахом писал(а): 01 Апрель 2023, 17:32 есть кодовый шаблон DisplayPopupMenu
Реально есть ! Странно, что я и им никогда не пользовался ... :)
Неполноценный шаблон. Даже иконку не добавить. Кто-нибудь доработал бы.
finsoftrz писал(а): 01 Апрель 2023, 17:41 В ШВС устанавливается в параметрах шаблона browse. В несколько модифицированном виде выглядит так.
В ABC логика другая. Меню прописано в глубинах класса. Если ничего для броуза лишнего не надо, то и настраивать ничего не надо. Как бы само работает. А в ШВС для каждого броуза надо настраивать?

ABC, popup в Browse

Добавлено: 01 Апрель 2023, 19:52
kreator
Игорь Столяров писал(а): 01 Апрель 2023, 14:10 Мона и так. Но мы проще делаем - при вызове SELF.SetAlerts() после открытия окна.
Почему проще? Если на окне несколько броузов, то удобней в самом BrowseClass'е. Да и синтаксис "self.popup" мне больше нравится. И с копированием проблем меньше.

ABC, popup в Browse

Добавлено: 01 Апрель 2023, 20:01
Игорь Столяров
kreator писал(а): 01 Апрель 2023, 19:52 Почему проще? Если на окне несколько броузов
Именно поэтому и проще. ;) Настройки PopUp меню для всех Browse в окне находятся в одном месте. :)
kreator писал(а): 01 Апрель 2023, 19:52 Да и синтаксис "self.popup" мне больше нравится
Однотипность синтаксиса не всегда в плюс - здесь ведь идёт работа с разными экземлярами одного класса.
Если (предположим) козлит что-то в настройке конкретного списка - то мне проще поиском пробежать по всем
Embeds и посмотреть что понанастраивали для конкретного списка по строке "BRW1." И всё. :)

ABC, popup в Browse

Добавлено: 01 Апрель 2023, 20:31
finsoftrz
kreator писал(а): 01 Апрель 2023, 19:37 В ABC логика другая. Меню прописано в глубинах класса. Если ничего для броуза лишнего не надо, то и настраивать ничего не надо. Как бы само работает. А в ШВС для каждого броуза надо настраивать?
Настраивать нужно, если привязываются пункты к контекстному меню. Кроме промптов в шаблоне броуза, есть также вставка в контекстное меню с помощью промптов других шаблонов. Например, у контрол шаблона "редактирование записи" (это где 3 кнопки доб/изм/уд) можно настроить включение в popup меню.
По большому счету, размещать код в нужные места (точки вставки) можно из разных шаблонов. У кодовых шаблонов есть минус, надо вначале найти нужную точку вставки в дереве. Если же размещать код контрол шаблонами или процедурными/глобальными экстеншенами, то название точки вставки можно прописать в них, меньше телодвижений.

ABC, popup в Browse

Добавлено: 01 Апрель 2023, 20:51
finsoftrz
kreator писал(а): 01 Апрель 2023, 19:37 Неполноценный шаблон. Даже иконку не добавить. Кто-нибудь доработал бы.
Там можно кнопку привязать, иконку будет из нее отображать. Я чаще всего так и делаю, пункты в popup меню соответствуют кнопкам. Так удобно разруливать настройки прав доступа.

ABC, popup в Browse

Добавлено: 01 Апрель 2023, 21:56
SergioRaguzini
Мне, как и Вячеславу, тоже показалось, что в Legacy (использую подправленные под себя ШВС) обработка popup проще.

После, как коллеги подсказали про popup-меню, увидел еще один, менее, на мой взгляд, интуитивно наглядный чем в Legacy, момент в ABC, ситуация:
допустим сделал свою кнопку, например, копирования записи ?btn_Copy
чтобы было "красиво", то принято, что когда записей нет, такая кнопка должна иметь PROP:Disable = TRUE, а когда записи появились - кнопка должна стать ENABLE

В legacy есть (в русском переводе Embed) "Нет записей для вывода" и, соответственно, "Имеются записи для вывода" и там соответственно можно отработать в каком случае "приглушать" или "подсвечивать" кнопку и(или) разместить еще какой-то код.

Здесь, в ABC в BrowseClass добавил отслеживание SELF.Records() (хез, правильно ли...)

А как в ABC грамотно решается ситуация: нет записи - кнопка Disable (т.е. по аналогии с кнопками ?Change и ?Delete)?

ABC, popup в Browse

Добавлено: 01 Апрель 2023, 22:24
Игорь Столяров
SergioRaguzini писал(а): 01 Апрель 2023, 21:56 А как в ABC грамотно решается ситуация: нет записи - кнопка Disable
Ну насчёт грамотно я не обещаю, но включать / выключать диапазон
контролов без лишних прорисовок мона вот так:

1.jpg

ABC, popup в Browse

Добавлено: 01 Апрель 2023, 22:42
SergioRaguzini
Игорь Столяров писал(а): 01 Апрель 2023, 22:24 ...мона вот так...
:ty:

ABC, popup в Browse

Добавлено: 01 Апрель 2023, 23:04
finsoftrz
Игорь Столяров писал(а): 01 Апрель 2023, 22:24
SergioRaguzini писал(а): 01 Апрель 2023, 21:56 А как в ABC грамотно решается ситуация: нет записи - кнопка Disable
Ну насчёт грамотно я не обещаю, но включать / выключать диапазон
контролов без лишних прорисовок мона вот так:
Я уже давно не пользуюсь этими точками вставки. Если есть контрол шаблоны, дочерние по отношению к броузу, то они автоматически отрабатывают доступность. Для обычных контролов использую процедурный экстеншин "Дополнительное управление browse", в котором список доступных контролов (на скриншоте). В сторону идеи работы через диапазон контролов не думал. Выглядит неплохо, хотя могут быть нюансы в использовании.

browse.jpg

ABC, popup в Browse

Добавлено: 01 Апрель 2023, 23:16
harry
Может, не понял задачу, но мне кажется, шаблон BrowseNoRecordsFound должен подойти.

ABC, popup в Browse

Добавлено: 01 Апрель 2023, 23:43
Игорь Столяров
finsoftrz писал(а): 01 Апрель 2023, 23:04 Выглядит неплохо, хотя могут быть нюансы в использовании.
У Вас же своя версия шаблонов и даже настройка среды разработки ...
Поэтому эти знания, к сожалению, можно использовать только на Вашем компьютере. :(
Мне их негде применить. Это как виртуозная настройка двигателя на Москвиче 412. :)

ABC, popup в Browse

Добавлено: 01 Апрель 2023, 23:54
finsoftrz
Игорь Столяров писал(а): 01 Апрель 2023, 23:43
finsoftrz писал(а): 01 Апрель 2023, 23:04 Выглядит неплохо, хотя могут быть нюансы в использовании.
У Вас же своя версия шаблонов и даже настройка среды разработки ...
Поэтому эти знания, к сожалению, можно использовать только на Вашем компьютере. :(
Мне их негде применить. Это как виртуозная настройка двигателя на Москвиче 412. :)
Никто не мешает взять идеи и перенести в abc. Или поискать в abc, может, что-то подобное уже реализовано.

ABC, popup в Browse

Добавлено: 02 Апрель 2023, 1:22
RaFaeL
Игорь Столяров писал(а): 01 Апрель 2023, 16:46 Таки есть варианты ? Научите !
Только без заброшенных 20-ти летних шаблонов, из-за которых потом проекты обречены на пожизненное Legacy.
А в чем разница, самим написать или чужой шаблон использовать?

ABC, popup в Browse

Добавлено: 02 Апрель 2023, 7:19
Игорь Столяров
RaFaeL писал(а): 02 Апрель 2023, 1:22 самим написать или чужой шаблон использовать
Если можешь написать шаблон сам - то полностью сам его и поддерживаешь.
Если нет таких навыков - то можно использовать сторонний шаблон.

Но как правило, авторы самопалных шаблонов (в т.ч. и названных в честь себя)
их забрасывают без каких-либо конвертеров, т.к. им всё и на всё пофиг.
И большие проекты сделанные на таких шаблонах - остаются привязанные к ним. :(