Вверх ↑
Этот топик читают: Гость
Ответов: 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
Разработчик
Ответов: 26257
Рейтинг: 2140
#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
Разработчик
Ответов: 26257
Рейтинг: 2140
#4: 2016-12-18 17:39:41 ЛС | профиль | цитата
Iliya писал(а):
Скажи пожалуйста а сделать пункт меню недоступным можно как нибудь?

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

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

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