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