Форум » Clipper » PopUpMenu Class » Ответить

PopUpMenu Class

azoo: Кто-нибудь работал с PopUpMenu Class ? В примере menu.prg описано построение горизонтального меню. А как сделать вертикальное ? Вот такой пример не проходит: oPopUp := PopUp(10,10,20) oItem :=MenuItem( "Продукция (товар)" ,{|| M1() },,, 1) oPopUp:AddItem( oItem) oItem :=MenuItem( "Виды продукции (товара)" ,{|| M2() },,,2) oPopUp:AddItem( oItem) oItem :=MenuItem( "Единицы измерения" ,{|| M3() },,,3) oPopUp:AddItem( oItem) oPopUp:Display() Что ещё нужно ?

Ответов - 18

Dima: Какой Clipper , какая библа ?

azoo: Изначально в Clipper 5.3 появился данный класс. Это не дополнительная библиотека а встроен в Clipper. В Harbour также реализован. Пример из SOURCE\SAMPLE\menu.prg в Harbour норм. работает. Но это горизонтальное меню. Я хотел просто вертикальное меню. PROMT как-то криво с мышью работает, поэтому ищу альтернативы.

AlexMyr: Проверил menu.prg из clippera, и вертикальное, и горизонтальное присутствуют. azoo пишет: Вот такой пример не проходит: полный пример покажите тут.


AlexMyr: Так устроит? [pre2] oTopBar := TopBar( 0, 0, 78) oTopBar:ColorSpec :="b/w,gr+/rb,r/w,g/rb,n+/w,w+/b" oPopUp := PopUp() oPopUp :ColorSpec:= "b/w,gr+/rb,r/w,g/rb,n+/w,w+/b" oTopBar:AddItem( MenuItem ( "Products",oPopUp) ) //oPopUp := PopUp(10,10,20) oItem :=MenuItem( "Продукция (товар)" ,{|| M1() },,, 1) oPopUp:AddItem( oItem) oItem :=MenuItem( "Виды продукции (товара)" ,{|| M2() },,,2) oPopUp:AddItem( oItem) oItem :=MenuItem( "Единицы измерения" ,{|| M3() },,,3) oPopUp:AddItem( oItem) oPopUp:Display() DO WHILE MenuModal(oTopBar,1,24,1,79,"r/w") <> 999 ENDDO[/pre2]

azoo: AlexMyr, пример понятен, но речь только о вертикальном popup-меню без привязки к горизонтальному меню "Products". Допустим в центре экрана. Пример в первом посте. Чего-то не хватает для отображения.

Dima: azoo Для этих целей возможно подойдет Boxmenu см. CLIPPER\SOURCE\SAMPLE\BOX.PRG можно еше посмотреть менюшки в NANFORUM TOOLKIT (NANFOR.LIB)

AlexMyr: azoo пишет: но речь только о вертикальном popup-меню без привязки к горизонтальному меню В старой проге на клиппере использовал achoice.

azoo: Где-то здесь была тема по поводу некорректной работы мыши в командах PROMPT, MENU TO. Меню срабатывает при нажатии в произвольном месте экрана. Boxmenu() внутри реализован с помощью PROMPT, поэтому не пойдет. Achoice() забыл что есть надо проверить.

Dima: azoo пишет: Boxmenu() внутри реализован с помощью PROMPT Упс , виноват ;) Взяв за основу Boxmenu когда то , я его переделал на Achoice без PROMPT

azoo: Achoice() работает корректно. Можно его использовать вместо popupmenu-класса. Плохо, что в Achoice() нельзя вставить разрывы, меню получается в каждой строчке без разрывов, разделителей в виде горизонтальной полосы. В этом плане PopUpMenu-класс конечно предоставляет больше возможностей. Но как с ним разобраться ?

azoo: Подскажите, кто какой системой создания меню пользуется в Harbour ?

Pasha: azoo пишет: Подскажите, кто какой системой создания меню пользуется в Harbour ? У меня своя собственная, через say aka dispout, и некоторые функции из тулз вроде SaywScreen, ColorWin, ClearWin

AlexMyr: azoo пишет: Подскажите, кто какой системой создания меню пользуется в Harbour ? В клипере пользовался библиотекой superlib, смотреть ф-ии BUNGSTART, BUNGOPTION, BUNGDROP() ..., можно собрать ее и под harbour.

azoo: В клипере пользовался библиотекой superlib, смотреть ф-ии BUNGSTART, BUNGOPTION, BUNGDROP() ..., можно собрать ее и под harbour. А в Хабре есть что-нибудь подобное? Superlib есть в исходниках ?

AlexMyr: azoo пишет: А в Хабре есть что-нибудь подобное? Superlib есть в исходниках ? смотрим \core\extras\superlib\readme.txt

azoo: смотрим \core\extras\superlib\readme.txt Не могу понять пункт 4 : 4.) Apply supplied patch to the source using GNU Patch: patch -lNi superlib.dif Что нужно делать ? Что за GNU - патч ?

Dima: azoo пишет: Что за GNU - патч ? http://gnuwin32.sourceforge.net/packages/patch.htm

azoo: Dima спасибо получилось собрать superlib.lib под Harbour. В клипере пользовался библиотекой superlib, смотреть ф-ии BUNGSTART, BUNGOPTION, BUNGDROP() Проверил функции для построения меню. Довольно удобно и понятно.



полная версия страницы