Показать сообщение отдельно
Старый 19.03.2004, 22:08   #1  
NIMERE is offline
NIMERE
Участник
 
36 / 11 (1) +
Регистрация: 09.12.2003
О Lookup-форме и FormFrame::Border
На лету в зависимости от места вызова подменяю свойство Frame, созданной в AOT формы. Если она вызывается как отдельная форма, то Standard, если как Lookup-форма, то как Border.
Подменяю в методе run формы до super():
PHP код:
public void run()
{
    switch (
element.args().dataset())
    {
        case 
TableNum(InventTable) :
        {
                
element.design().frame(FormFrame::Border);
                
element.design().windowType(FormWindowType::PopUp);
                break;
        }

        default:
        {
                
element.design().frame(FormFrame::Standard);
                
element.design().windowType(FormWindowType::Standard);
                break;
         }
    }

    
super();

Проверка из самой вызываемой формы показала, что значение Frame изменяется, что однако не скажешь о реальном отображении формы: в случае Border форма остается Standard (по-умолчанию как настроено в AOT) при этом опросив FormFrame из формы в противоречие этому получаем Border.
Необходимость изменения Frame пришла в следствие ситуации, когда форма, вызываемая как Lookup-форма и настроенная с Frame = Standard в случае если Lookup-форма открывается так близко к краю окна, что не может поместиться полностью, остается активной только пока пользователь не отпустил левую клавишу мышки, а в случае если же такая Lookup-форма открывается на достаточном расстоянии от края, то она остается активной и далее.

Далее, посмотрим с другой стороны - изменим Frame в самом AOT на Border... В случае с Lookup-формой, все отрабатывает замечательно - видно, что форма привязывается к кнопке со стрелкой, однако в случае вызова формы самой по себе Frame на лету также изменить не удается - шапки формы не видно...
И еще один момент: в отличие от ситуации с Frame, windowType в приведенном выше коде отлично отрабатывает.

Прошу помощи - как реально сменить Frame у формы на лету, что в этом свойстве такого особенного?
__________________
Локальная версия продукта: MBS-Axapta 3.0 Eastern Europe SP6 Build #15.0
Системная версия продукта: MBS-Axapta 3.0 Build #1951.7609/514-859 SP6/OP023-659