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

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

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

Как? :)

Добавлено: 08 май 2008, 12:17
m0p3e
cmClose : Abort;
cmCancel : Abort;

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

Добавлено: 08 май 2008, 14:04
Евгений
Попробуйте, такой вариант

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

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. 

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

В обработчике кнопки
cmMyButton : {CloseInterface(cmDefault);};

Добавлено: 13 май 2008, 06:57
Алексей
m0p3e :) мда. работает...

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

Добавлено: 25 июн 2014, 16:21
RAJAH
Скажите, уважаемые знатоки, а насколько правомочна конструкция

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

interface MyFace
...
handleevent
  cmInit:
  {
...
  }
...
  cmClose:
  {
    RunInterface('MyFace');
  }
...
Т.е., задача примерно такая: сделать интерфейс, который после отработки вызовет код из cmInit.

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

Добавлено: 25 июн 2014, 17:19
Den
По всей видимости, бесконечный "вечный двигатель" )

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

Добавлено: 25 июн 2014, 17:21
RAJAH
Как тогда правильно поступить, чтобы интерфейс закрылся и заново запустился?

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

Добавлено: 25 июн 2014, 17:24
edward_K
и зачем такие сложности? Если нужен вечный двигатель это одно - хватит и просто блокировки на закрытие. Если что то другое - то зачем?

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

Добавлено: 25 июн 2014, 17:33
RAJAH
В общем, вот:

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

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