Вверх ↑
Этот топик читают: Гость
Ответов: 233
Рейтинг: 12
#1: 2016-12-18 14:18:20 ЛС | профиль | цитата
Появилась задача сделать всплывающее меню динамически изменяемым, но с толкнулся с глюком: при выборе пункта меню - оно открывается еще раз в том месте где кликнул мышью и только со второго раза выдает индекс выбранного пункта


Add(MainForm,2953706,84,70)
{
Width=475
Height=205
Position=1
}
Add(Button,5523868,210,231)
{
Left=50
Top=50
Data=Integer(1)
link(onClick,7821524:doWork2,[])
}
Add(PopupMenu,10730118,329,224)
{
Menu=#26:Удалить выделенные посылки|1:-|27:Удалить все посылки с весом|29:Удалить все посылки с оценкой|36:Удалить все посылки с датой отправки|34:Удалить все посылки с отправителем|1:-|6:Отмена|
Point(Bitmaps)
link(onClick,15894548:doText,[])
}
Add(MultiElement,7821524,266,224)
{
link(onEvent1,10730118:doPopupHere,[])
link(onEvent2,10730118:doAddItem,[(316,237)(316,244)])
link(onEvent3,10730118:doClear,[(309,244)(309,251)])
}
BEGIN_SDK
Add(EditMulti,4336779,21,21)
{
EventCount=3
WorkCount=2
DataCount=1
Width=559
Height=410
link(doWork1,2475999:doAdd,[(35,27)(35,69)])
link(doWork2,10685434:doEvent1,[(30,34)(30,293)])
}
Add(MT_String,14251032,98,63)
{
link(onResult,3481814:doSplit,[])
}
Add(MT_Add,2475999,49,63)
{
InputMT=2
link(onAdd,14251032:doStr,[])
link(Data,4336779:Data1,[(55,42)(27,42)])
}
Add(MultiStrData,3481814,147,63)
{
Count=9
link(onPart5,14466058:doTrim,[(265,97)(265,55)])
link(onPart6,2486817:doTrim,[])
link(onPart7,617127:doTrim,[(263,111)(263,146)])
link(onPart8,8004529:doTrim,[(225,118)(225,188)])
}
Add(StrList,4420637,406,301)
{
link(onChange,1777621:doEnum,[])
}
Add(ArrayEnum,1777621,455,301)
{
link(onItem,4336779:onEvent2,[(522,307)(522,34)])
link(onEndEnum,4336779:onEvent1,[(503,314)(503,27)])
link(Array,4420637:Array,[(461,289)(443,289)(443,358)(426,358)])
}
Add(FormatStr,10354669,350,322)
{
DataCount=4
Mask="Удалить выделенные посылки\r\n-\r\nУдалить все посылки с весом %1\r\nУдалить все посылки с оценкой %2\r\nУдалить все посылки с датой отправки %3\r\nУдалить все посылки с отправителем %4 \r\n-\r\nОтмена"
Point(FString)
link(onFString,4420637:doText,[])
link(Str1,8278615:Value,[(356,226)(370,226)])
link(Str2,11840516:Value,[(363,233)(405,233)])
link(Str3,7735437:Value,[(370,254)(335,254)])
link(Str4,1070998:Value,[(377,268)(300,268)])
}
Add(Hub,10685434,294,287)
{
OutCount=3
link(onEvent1,4420637:doClear,[(386,293)(386,314)])
link(onEvent2,4336779:onEvent3,[(336,300)(336,387)(543,387)(543,41)])
link(onEvent3,10354669:doString,[(324,307)(324,328)])
}
Add(Trim,14466058,350,49)
{
Mode=7
link(onTrim,11840516:doValue,[])
}
Add(Memory,11840516,399,49)
{
}
Add(Trim,2486817,315,98)
{
Mode=7
link(onTrim,8278615:doValue,[])
}
Add(Memory,8278615,364,98)
{
}
Add(Trim,617127,280,140)
{
Mode=7
link(onTrim,7735437:doValue,[])
}
Add(Memory,7735437,329,140)
{
}
Add(Trim,8004529,245,182)
{
Mode=7
link(onTrim,1070998:doValue,[])
}
Add(Memory,1070998,294,182)
{
}
END_SDK
Add(Label,15894548,385,224)
{
Left=280
Top=60
}

карма: 2

0
vip
#1.1контекстная реклама от партнеров
Разработчик
Ответов: 26061
Рейтинг: 2120
#2: 2016-12-18 14:51:43 ЛС | профиль | цитата
А таймер с нулевой задержкой на точку doPopUpHere не спасет?
карма: 22

0
Ответов: 233
Рейтинг: 12
#3: 2016-12-18 17:33:49 ЛС | профиль | цитата
nesco писал(а):
А таймер с нулевой задержкой на точку doPopUpHere не спасет?


Уже понял в чем ошибка... такой глюк если подавать с точки onChange StrList на перебор массива. Скажи пожалуйста а сделать пункт меню недоступным можно как нибудь?
карма: 2

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#4: 2016-12-18 17:39:41 ЛС | профиль | цитата
Iliya писал(а):
Скажи пожалуйста а сделать пункт меню недоступным можно как нибудь?

В этой версии меню данное действие не предусмотрено. Или разве что по аналогии с методом doEnablIdx или doIdxEnabled из юнита XPMenus.pas

Редактировалось 2 раз(а), последний 2016-12-18 17:44:37
карма: 22

0
4
Сообщение
...
Прикрепленные файлы
(файлы не залиты)