Закрыть интерфейс только по кнопке

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

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

Ответить
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Закрыть интерфейс только по кнопке

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

Хочу чтобы интерфейс закрывался только по кнопке в скрине, чтобы кнопка Esc и нажатие мышью на крестик ничего не делали...

Как? :)
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

cmClose : Abort;
cmCancel : Abort;
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

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

m0p3e не получится, т.к. после вызова CloseInterface(0) вызывается сначала одно потом другое событие :)
Евгений
Посетитель
Сообщения: 41
Зарегистрирован: 25 авг 2005, 09:50

Сообщение Евгений »

Попробуйте, такой вариант

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

Interface TestClose;
  var
    IsClose: Boolean;
  view as select * from kated;

  Screen Scr;
  Buttons
    cmCls;
<<
 <. Exit .>
>>
  end;
  HandleEvent
    cmInit:
    {
      IsClose := False;
    }
    cmClose:
    {
      if (not IsClose)
      Abort
    }
    cmCancel:
    {
      if (not IsClose)
      Abort
    }
    cmCls:
    {
      IsClose := True;
      CloseInterface(0);
    }
  end;
end. 
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Сообщение m0p3e »

Алексей писал(а):m0p3e не получится, т.к. после вызова CloseInterface(0) вызывается сначала одно потом другое событие :)
А ты проверь! :)

В обработчике кнопки
cmMyButton : {CloseInterface(cmDefault);};
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

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

m0p3e :) мда. работает...
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Закрыть интерфейс только по кнопке

Сообщение RAJAH »

Скажите, уважаемые знатоки, а насколько правомочна конструкция

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

interface MyFace
...
handleevent
  cmInit:
  {
...
  }
...
  cmClose:
  {
    RunInterface('MyFace');
  }
...
Т.е., задача примерно такая: сделать интерфейс, который после отработки вызовет код из cmInit.
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Закрыть интерфейс только по кнопке

Сообщение Den »

По всей видимости, бесконечный "вечный двигатель" )
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Закрыть интерфейс только по кнопке

Сообщение RAJAH »

Как тогда правильно поступить, чтобы интерфейс закрылся и заново запустился?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Закрыть интерфейс только по кнопке

Сообщение edward_K »

и зачем такие сложности? Если нужен вечный двигатель это одно - хватит и просто блокировки на закрытие. Если что то другое - то зачем?
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Закрыть интерфейс только по кнопке

Сообщение RAJAH »

В общем, вот:

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

  cmInit:
  {
    if RunInterface('F_FPCATALOG::GETCO', 1, 0, 0, podnrec) <> cmDefault then
    begin
      CloseInterface(0);
      abort;
      exit;
    end;
  }
Для выбранного ЦО строится browse. Логично, чтобы после работы с ним, пользователю не пришлось вызывать интерфейс заново, а закрытие происходило только при отказе выбирать ЦО.
Ответить