Страница 1 из 5
ABC, popup в Browse
Добавлено: 01 Апрель 2023, 13:17
SergioRaguzini
Привет Всем!
В небольшом приложении на С6.3 ABC, хочу, чтобы некая "Кнопка" (не входящая в список стандартных "Добавить, Изменить, Удалить") также добавилась в качестве дополнительного пункта popup меню вызываемого по пр.кнопке мыши.
Пытаюсь использовать для этого шаблон "
DisplayPopupMenu", если применить его к кнопке, то тут все OK, но можно ли применять этот шаблон к Browse и если Да, то в каком Embeds его использовать. Или в этой ситуации можно поправить иначе?
Спасибо
p.s. использую, в основном Legаcy, поэтому прошу совета
ABC, popup в Browse
Добавлено: 01 Апрель 2023, 13:33
kreator
Где-то я писал уже об этом. Ладно, повторю.
В методе SetAlerts класса BrowseClass после ParentCall:
Код: Выделить всё
self.Popup.AddItem('-', 'SeparatorCopy')
self.Popup.AddItemMimic('Copy', ?Copy3Button, 'Скопировать номер и наименование ПТ')
self.Popup.SetIcon('Copy', '~pics\copy28.ico')
self.Popup.SetFontName('Copy', 'Segoe UI')
self.Popup.SetFontSize('Copy', 12)
self.Popup.SetBackgroundColor('Copy', COLOR:KreatoRSecondBGNormal)
self.Popup.SetSelBackgroundColor('Copy', COLOR:KreatoRSelBackground)
Последние четыре вызова только для расширенного класса (скачать можно с ftp).
ABC, popup в Browse
Добавлено: 01 Апрель 2023, 13:38
kreator
На ftp как раз пример для меню броуза.
ABC, popup в Browse
Добавлено: 01 Апрель 2023, 13:41
Дед Пахом
Короче, ищите в справке "AddItemMimic".
ABC, popup в Browse
Добавлено: 01 Апрель 2023, 13:46
Игорь Столяров
Без дополнительных прибамбасов можно также менять текст и иконку
(например если одна и таже кнопка в разных режимах работает на изменение или просмотр записи)
Код: Выделить всё
BRW1.Popup.AddItemMimic('View',?View,'Накладная<9>F3')
If ... then BRW1.Popup.SetIcon('View',Icon:View). ! Изменить иконку в PopUp menu по условию
BRW1.Popup.SetText('Delete','Удалить<9>Del') ! Изменить текст кнопки добавляемой в PopUp меню шаблоном
ABC, popup в Browse
Добавлено: 01 Апрель 2023, 13:53
SergioRaguzini
kreator писал(а): ↑01 Апрель 2023, 13:33
Где-то я писал уже об этом. Ладно, повторю.
В методе SetAlerts класса BrowseClass после ParentCall
Да, я читал,
viewtopic.php?p=22836&hilit=popup#p22836 но где должна быть вставка не понял
Спасибо
ABC, popup в Browse
Добавлено: 01 Апрель 2023, 13:55
SergioRaguzini
место вставки тоже -
в методе SetAlerts класса BrowseClass после ParentCall ?
Игорь Столяров писал(а): ↑01 Апрель 2023, 13:46
Без дополнительных прибамбасов можно также менять текст и иконку
(например если одна и таже кнопка в разных режимах работает на изменение или просмотр записи)
...
ABC, popup в Browse
Добавлено: 01 Апрель 2023, 14:10
Игорь Столяров
SergioRaguzini писал(а): ↑01 Апрель 2023, 13:55
методе SetAlerts класса BrowseClass после ParentCall
Мона и так. Но мы проще делаем - при вызове SELF.SetAlerts() после открытия окна.
И свои пункты в PopUp меню можно добавлять выше или ниже добавленных шблоном.
Ещё можно добавлять группы пунктов меню - но это уже совсем другая история.
Код: Выделить всё
! Setting up browse toolbar control on TOborot
! [Priority 8800]
BRW1.Popup.AddItemMimic('Calc',?Calc,'Запрос<9>F12')
BRW1.Popup.AddItem('-','Separatop1')
! Prepare Alert Keys
SELF.SetAlerts()
! [Priority 9500]
BRW1.Popup.AddItem('-','Separatop2')
BRW1.Popup.AddItemMimic('SelectAll',?SelectAll,'Все выбрать<9>Ctrl+A')
BRW1.Popup.AddItemMimic('DeSelect', ?DeSelect, 'Все отменить<9>Ctrl+D')
BRW1.Popup.AddItemMimic('Invert', ?Invert, 'Ивертировать<9>Ctrl+I')
BRW1.Popup.AddItem('-','Separatop3')
BRW1.Popup.AddItemMimic('Refresh',?Refresh,'Обновить<9>F5')
oHH &= NEW tagHTMLHelp
ABC, popup в Browse
Добавлено: 01 Апрель 2023, 14:15
SergioRaguzini
Спасибо Всем за отклики!
ABC, popup в Browse
Добавлено: 01 Апрель 2023, 16:08
finsoftrz
Неужели в abc все это ручками пишут? Каменный век какой-то.
ABC, popup в Browse
Добавлено: 01 Апрель 2023, 16:46
Игорь Столяров
finsoftrz писал(а): ↑01 Апрель 2023, 16:08
Каменный век какой-то.
Таки есть варианты ? Научите !
Только без заброшенных 20-ти летних шаблонов, из-за которых потом проекты обречены на пожизненное Legacy.
ABC, popup в Browse
Добавлено: 01 Апрель 2023, 17:32
Дед Пахом
Вообще-то есть кодовый шаблон DisplayPopupMenu - идёте в Embeds, жмёте Insert, выбираете DisplayPopupMenu. Никогда не пользовался хотя.
ABC, popup в Browse
Добавлено: 01 Апрель 2023, 17:36
finsoftrz
Я могу показать, как это еще в конце 90-х было реализовано в ШВС. А в abc уж сами. Я думаю, что наверняка в каких-нибудь 3d party шаблонах такое тоже есть. Странно, что SV за 25 лет такой очевидный механизм в свой базовый набор не включило. Может, просто не знаете, как это у них делается? Лень в abc шаблонах искать, у меня по ним идеологические разногласия, не интересны.
ABC, popup в Browse
Добавлено: 01 Апрель 2023, 17:41
finsoftrz
Дед Пахом писал(а): ↑01 Апрель 2023, 17:32
Вообще-то есть кодовый шаблон DisplayPopupMenu - идёте в Embeds, жмёте Insert, выбираете DisplayPopupMenu. Никогда не пользовался хотя.
В ШВС устанавливается в параметрах шаблона browse. В несколько модифицированном виде выглядит так.
ABC, popup в Browse
Добавлено: 01 Апрель 2023, 18:14
Игорь Столяров
Дед Пахом писал(а): ↑01 Апрель 2023, 17:32
есть кодовый шаблон DisplayPopupMenu
Реально есть ! Странно, что я и им никогда не пользовался ...