Так и привяжите PopUp() к кнопке.
Из Вашего описания непонятно к каким координатам идёт привязка.
Код: Выделить всё
Popup('...',?BPrint{Prop:XPos},?BPrint{Prop:YPos} - 2,True)
Но это от версии Clarion не зависит.
Модератор: Дед Пахом
Так и привяжите PopUp() к кнопке.
Код: Выделить всё
Popup('...',?BPrint{Prop:XPos},?BPrint{Prop:YPos} - 2,True)
Код: Выделить всё
fFeq# = ?Button
fFeqX# = fFeq#{PROP:Xpos}
fFeqY# = fFeq#{PROP:Ypos}
fFeqW# = fFeq#{PROP:Width}
fFeqH# = fFeq#{PROP:Height}
zn# = popup('Пункт1|Пункт2',fFeqX#+fFeqW#/2,fFeqY#+fFeqH#/2,1)
Код: Выделить всё
fFeq# = pcontrol
fFeqX# = fFeq#{PROP:Xpos}
fFeqY# = fFeq#{PROP:Ypos}
fFeqW# = fFeq#{PROP:Width}
fFeqH# = fFeq#{PROP:Height}
zn# = popup('Пункт1|Пункт2',fFeqX#+fFeqW#/2,fFeqY#+fFeqH#/2,1)
return(zn#)
Привет Всем!Игорь Столяров писал(а): ↑28 Июнь 2021, 20:54 ....я использую текущие версии Clarion и у меня на это пять причин ...
------------------------------------------------------------------------------------------------
1. Современный интерфейс приложений. Интерфейс аля XP юзеры избалованные смартфонами не воспринимают
....
Даже не буду извиняться, что сам до такого не додумался когда писал ответ !
Здесь вопрос в том, что координаты устанавливаются относительно текущего окна
Игорь Столяров писал(а): ↑08 Август 2021, 13:31 Вы уверены, что у Вас в другой DLL окно не меняется ?
Потому, что цифры координат кнопки напрямую не определяют положение POPUP().
Попробуйте проверить TARGET до вызова и внутри процедуры.
Возможно есть смысл передать в процедуру Window окна и выполнить SetTARGET(Window), а потом снять.
Конечно. Это отдельная DLL в которой находятся отчёты и собственно процедура POPUP() через которую они вызываются.
Это очень обидная тема. Дело в том, что оформительские возможности Clarion исторически убоги.SergioRaguzini писал(а): ↑08 Август 2021, 12:49 не плохой реализацией современного интерфейса выполненного средствами Clarion
Нет. Просто вызов процедуры с popup() из DLL.
Единственное, что мне приходит в голову, это разные билды клариона. Я тестирую на 11.0.13505. Возможно, Вы на более позднем смотрите, и там этот баг пофиксили.Игорь Столяров писал(а): ↑08 Август 2021, 14:12Конечно. Это отдельная DLL в которой находятся отчёты и собственно процедура POPUP() через которую они вызываются.
Более того - таких мест много и в разных программах. Но есть один момент. У нас нажимается не BOTTON, а CHECKBOX
(что показать удержание нажатия кнопки на момент выбора из POPUP() меню)