Страница 1 из 1
Обновление буфер таблицы и записи в очереди
Добавлено: 20 Март 2007, 7:38
StillZero
Два связанных между собой вопроса:
1. При ThisWindow.Update не происходит обновление буфера таблицы и текущей выделенной записи в list-box-е. Хотя это я могу понять. Типо причем здесь ABC.
2. Есть метод брауза Action(LONG Control),LONG,VIRTUAL служит для enable/disable-а контролов.
Этот метод не вызывается при вызове PopupMenu, т.е. не вызывается при MouseRight.
На самом деле мне надо, чтобы этот метод вызывался при MouseRightUp. Само собой, на момент вызова метода буфер таблицы должен содержать актуальные данные.
Добавлено: 20 Март 2007, 7:42
StillZero
да и пока обошелся таким кодом:
Код: Выделить всё
! обновляем запись перед показом PopupMenu
IF EVENT()=EVENT:AlertKey
IF FIELD()=?List
CASE KEYCODE()
OF MouseRightUp
OROF ShiftF10
GET(Queue:Browse,choice(?List))
IF NOT ERRORCODE()
PC:PriceChangeID = Queue:Browse.PriceChangeID
ERR# = MAVGET(CS_PriceChanges)
BRW1:Browse.NewSelection()
END
END
END
END
и проверкой enable/disable на NewSelection, но это не гуд
Добавлено: 20 Март 2007, 13:13
Admin
Подтверждаю слова Андрея.
Маленько опишу что у меня не получается...
Используем свой класс Popup вместо встроенного в вровз MAV
По MouseRightUp вызываем свой popup в котором настроен mimic на кнопки типа insert, change, delete. Но они не disabled в соответствии с правилами заданными в методе ... Action
пофиксить бы и обновление получить на мыло ... в смысле ссылку на обновление.
Заранее благодарю!
Re: Обновление буфер таблицы и записи в очереди
Добавлено: 26 Март 2007, 13:28
Andrew™
StillZero писал(а):Два связанных между собой вопроса:
1. При ThisWindow.Update не происходит обновление буфера таблицы и текущей выделенной записи в list-box-е. Хотя это я могу понять. Типо причем здесь ABC.
не знаю как ABC, но есть соответсвующий метод .NewSelection, он инициализирует буфер файла, ну естественно вызывается и на NewSelection и на AlertKey
StillZero писал(а):2. Есть метод брауза Action(LONG Control),LONG,VIRTUAL служит для enable/disable-а контролов.
Этот метод не вызывается при вызове PopupMenu, т.е. не вызывается при MouseRight.
На самом деле мне надо, чтобы этот метод вызывался при MouseRightUp. Само собой, на момент вызова метода буфер таблицы должен содержать актуальные данные.
он и содержит актуальные значения т к обработка MouseRight идёт уже после PARENT.NewSelection
Код: Выделить всё
BRW1:Browse.NewSelection PROCEDURE
CODE
PARENT.NewSelection
CASE KEYCODE()
OF MouseRight
SETKEYCODE(0)
SELF.PreparePopup
END
ну конечно Блин, это разве не вызов:
SELF.Run_View = SELF.Popup.AddPos(SELF.Popup.GetText(?View),0,0,CHOOSE(
SELF.Action(?View)=0,1,0),1)
судя по вопросам - дело всё в ручках, где то косяк в ручном кодировании или CYCLE в ACCEPT'е стоит и MAV:WindowManager.events() не отрабатывается, а он стоит в конце ACCEPT'а
Добавлено: 26 Март 2007, 13:29
Andrew™
StillZero писал(а):да и пока обошелся таким кодом:
см. ответ на пред. пост
Добавлено: 26 Март 2007, 13:33
Andrew™
Admin писал(а):Подтверждаю слова Андрея.
Маленько опишу что у меня не получается...
Используем свой класс Popup вместо встроенного в вровз MAV
По MouseRightUp вызываем свой popup в котором настроен mimic на кнопки типа insert, change, delete. Но они не disabled в соответствии с правилами заданными в методе ... Action
пофиксить бы и обновление получить на мыло ... в смысле ссылку на обновление.
Заранее благодарю!
а чего фиксить то, если дело в ручках, тока сейчас понЯл в чём дело, Вы сами реализуете обработку AlertKey до штатной обработки MAVBrowse объекта, я уже писал что эта обработка идёт в конце ACCEPT'а в MAV:WindowManager'е
про вызов метода Action я тоже написал, вызывается он при конструировании POPUP элемента меню:
Код: Выделить всё
SELF.Run_View = SELF.Popup.AddPos(SELF.Popup.GetText(?View),0,0,CHOOSE(SELF.Action(?View)=0,1,0),1)
хотите свою обработку оставить до базовой, на AlertKey вызовите BRW1:Browse.NewSelection - далее что угодно. чем не устраивает штатный POPUP так и не понял
Добавлено: 26 Март 2007, 13:37
Admin
чем не устраивает штатный POPUP так и не понял
Функционала мало. Свои шаблоны гораздо приятнее использовать.
Добавлено: 26 Март 2007, 13:39
Andrew™
свои обработки горячих клавиш на Browse надо делать в соответсвующем EMBED'е - после PARENT.NewSelection, ну и естественно гасить этот клавишный код SETKEYCODE(0), чтобы штатный POPUP не отработался