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

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

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

Сообщение 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) - бесполезно. В чем может быть косяк?
Ged
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение Ged »

полный текст в студию
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение 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 то все начинает работать :???:
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

а зачем "dialog" ?
А если это и вправду диалог, его и использовать?
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

нужно окно с неизменяемыми размерами, а в dialog нельзя использовать конструкцию create view
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

ну у screen тоже можно указать явно размеры и их зафиксировать.
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

edward_K
Имеется x_fixed? У меня что-то не работает, можно код? и у меня нет скрина, есть interface и у него browse.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

под рукой нет, у броусе тоже можно. делал как то. Было 2 скрина и броусе - пришлось фиксировать, чтобы zoom не ломал.
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

edward_K
если это с fixed_X или fixed_Y то не сработает, так как это зафиксирует размеры области ввода, но никак не интерфейса, а к самому интерфейсу данные атрибуты не применимы, разве что с window поиграться
Ответить