cmSwitchToContainer: нотификация перехода фокуса между форматами |
Идентификатор события - cmSwitchToContainer.
Оператор Abort может быть выполнен. В этом случае переход между панелями производиться не будет.
Оператор Stop может быть выполнен.
Событие возникает при выходе из встроенного интерфейса. Событие передается в обработчик интерфейса, из которого произошел переход. Если фокус смещается из встроенного главного окна интерфейса, то событие попадает в обработчик главного окна. Если фокус смещается из встроенного неглавного окна интерфейса, то событие попадает в обработчик оконных событий.
При этом сначала обрабатывается событие cmSwitchToContainer, а потом cmSwitchFormat. Следует учесть, что прикладная обработка команды cmSwitchToContainer происходит до вызова UpdateTable. При переключении закладок событие не посылается.
//************************************************************** objInterface objTestEmb; end; vipInterface TestEmb1 implements objTestEmb licensed (free); vipInterface TestEmb2 implements objTestEmb licensed (free); //************************************************************** interface TestEmb1 'TestEmb 1'; create view as select * from x$files ; //--------------------------------------------------------- browse brOrg; table x$files; fields xf$name #3'Name 1 main' ('Name',,) : [20], protect; end; // brOrg //========================================================= window wnTestEmb; //--------------------------------------------------------- browse brWnOrg; table x$files; fields xf$name #3'Name 1 win' ('Name',,) : [20], protect; end; // Browse //--------------------------------------------------------- handleEvent // wnTestEmb cmSwitchFromContainer: Message('Пришли во встроенное неглавное окно 1: так не бывает'); cmSwitchToContainer: Message('Ушли из встроенного неглавного окна 1'); end; // handleEvent wnTestEmb end; // wnTestEmb //--------------------------------------------------------- handleEvent // interface cmSwitchFromContainer: Message('Пришли во встроенное главное окно 1'); cmSwitchToContainer: Message('Ушли из встроенного главного окна 1'); end; // handleEvent Interface end. interface TestEmb2 'TestEmb 2'; create view as select * from x$files ; //--------------------------------------------------------- browse brOrg; table x$files; fields xf$name #3'Name 2 main' ('Name',,) : [20], protect; end; // brOrg //========================================================= window wnTestEmb; //--------------------------------------------------------- browse brWnOrg; table x$files; fields xf$name #3'Name 2 win' ('Name',,) : [20], protect; end; // browse //--------------------------------------------------------- handleEvent // wnTestEmb cmSwitchFromContainer: Message('Пришли во встроенное неглавное окно 2: так не бывает'); cmSwitchToContainer: Message('Ушли из встроенного неглавного окна 2'); end; // handleEvent wnTestEmb end; // wnTestEmb //--------------------------------------------------------- handleEvent // interface cmSwitchFromContainer: Message('Пришли во встроенное главное окно 2'); cmSwitchToContainer: Message('Ушли из встроенного главного окна 2'); end; // handleEvent interface end. //************************************************************** interface TestSwitchToFromContainer 'TestSwitchToFromContainer'; create view as select * from x$files ; var iTestEmb1: TestEmb1; iTestEmb2: TestEmb2; iTestEmb1w: TestEmb1; iTestEmb2w: TestEmb2; //========================================================= window wnCheck 'wnCheck'; //--------------------------------------------------------- browse brWnKatMC; show at(,,,4); table x$files; fields xf$name #3'Name Root win' ('Name',,) : [20], protect; end; // Browse //--------------------------------------------------------- embedded embTest11 interface iTestEmb1w.wnTestEmb; show at(,5,,9); end; //--------------------------------------------------------- embedded embTest12 interface iTestEmb1w; show at(,10,,14); end; //--------------------------------------------------------- embedded embTest13 interface iTestEmb2w.wnTestEmb; show at(,15,,19); end; //--------------------------------------------------------- embedded embTest14 interface iTestEmb2w; show at(,20); end; //--------------------------------------------------------- handleEvent // wnCheck cmSwitchFromContainer: Message('Пришли в неглавное окно контейнера: так не бывает'); cmSwitchToContainer: Message('Ушли из неглавного окна контейнера: так не бывает'); end; // handleEvent wnCheck end; // wnCheck //--------------------------------------------------------- browse brKatMC; show at(,,,4); table x$files; fields xf$name #3'Name Root main' ('Name',,) : [20], protect; end; //--------------------------------------------------------- embedded embTest01 interface iTestEmb1.wnTestEmb; show at(,5,,9); end; //--------------------------------------------------------- embedded embTest02 interface iTestEmb1; show at(,10,,14); end; //--------------------------------------------------------- embedded embTest03 interface iTestEmb2.wnTestEmb; show at(,15,,19); end; //--------------------------------------------------------- embedded embTest04 interface iTestEmb2; show at(,20); end; //--------------------------------------------------------- handleEvent // interface cmDefault: RunWindow('wnCheck'); cmSwitchFromContainer: Message('Пришли в главное окно контейнера: так не бывает'); cmSwitchToContainer: Message('Ушли из главного окна контейнера: так не бывает'); end; // handleEvent for interface end. // interface