Страница 1 из 1

Не обновляется экран :(

Добавлено: 13 май 2009, 19:50
galover
Есть примерно следующий код:

Код: Выделить всё

create view as select * from
Table1, Table2;

screen
 table Table1;
 
 fields
  Table1.Name1;
  Table2.Name1;
 buttons
  cmStart;
end;

handleEvent:
  cmPick:
  {
     case CurField() of
        #Table1.Name1:
        {
             ....
             SetEnableCommand(cmStart, SomeCondition());
         }
         #Table2.Name1:
        {
             ...
            SetEnableCommand(cmStart, SomeCondition());
        }
     end;
  }
end; 
При выборе Table2.Name1 кнопка становится серой и наоборот - все работает как надо. А вот при выборе Table1.Name1 - кнопка не обновляет своего состояния (SetEnableCommand вызывается как надо, проверял) :( Делал и ReScanPanel(#Table1) - бесполезно. В чем может быть косяк?

Добавлено: 14 май 2009, 01:21
Ged
полный текст в студию

Добавлено: 14 май 2009, 12:32
galover
обнаружил что дело в вызываемом интерфейсе, т.е. код такой:

Код: Выделить всё

cmPick:
  {
     case CurField() of
        #Table1.Name1:
        {
             RunInterface(MyInterface); // <- проблемное место
             SetEnableCommand(cmStart, SomeCondition());
         }
         #Table2.Name1:
        {
             ...
            SetEnableCommand(cmStart, SomeCondition());
        }
     end; 

    interface MyInterface 'Тест', cyan, doAccept, dialog, escClose; // все дело в dialog
    ...
    end.
если убрать ключевое слово dialog то все начинает работать :???:

Добавлено: 14 май 2009, 13:35
Алексей
а зачем "dialog" ?
А если это и вправду диалог, его и использовать?

Добавлено: 14 май 2009, 14:22
galover
нужно окно с неизменяемыми размерами, а в dialog нельзя использовать конструкцию create view

Добавлено: 14 май 2009, 14:50
edward_K
ну у screen тоже можно указать явно размеры и их зафиксировать.

Добавлено: 14 май 2009, 15:11
galover
edward_K
Имеется x_fixed? У меня что-то не работает, можно код? и у меня нет скрина, есть interface и у него browse.

Добавлено: 14 май 2009, 15:48
edward_K
под рукой нет, у броусе тоже можно. делал как то. Было 2 скрина и броусе - пришлось фиксировать, чтобы zoom не ломал.

Добавлено: 14 май 2009, 18:12
galover
edward_K
если это с fixed_X или fixed_Y то не сработает, так как это зафиксирует размеры области ввода, но никак не интерфейса, а к самому интерфейсу данные атрибуты не применимы, разве что с window поиграться