Программирование на Атлантисе (VIP, FCOM, ARD), FastReport
Модераторы: m0p3e , edward_K , Модераторы
Алексей
Местный житель
Сообщения: 2898 Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область
Сообщение
Алексей » 08 май 2008, 12:05
Хочу чтобы интерфейс закрывался только по кнопке в скрине, чтобы кнопка Esc и нажатие мышью на крестик ничего не делали...
Как?
m0p3e
Местный житель
Сообщения: 1386 Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Сообщение
m0p3e » 08 май 2008, 12:17
cmClose : Abort;
cmCancel : Abort;
Алексей
Местный житель
Сообщения: 2898 Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область
Сообщение
Алексей » 08 май 2008, 12:19
m0p3e не получится, т.к. после вызова CloseInterface(0) вызывается сначала одно потом другое событие
Евгений
Посетитель
Сообщения: 41 Зарегистрирован: 25 авг 2005, 09:50
Сообщение
Евгений » 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.
m0p3e
Местный житель
Сообщения: 1386 Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Сообщение
m0p3e » 08 май 2008, 17:21
Алексей писал(а): m0p3e не получится, т.к. после вызова CloseInterface(0) вызывается сначала одно потом другое событие
А ты проверь!
В обработчике кнопки
cmMyButton : {CloseInterface(cmDefault);};
Алексей
Местный житель
Сообщения: 2898 Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область
Сообщение
Алексей » 13 май 2008, 06:57
m0p3e мда. работает...
RAJAH
Местный житель
Сообщения: 933 Зарегистрирован: 18 фев 2008, 12:49
Сообщение
RAJAH » 25 июн 2014, 16:21
Скажите, уважаемые знатоки, а насколько правомочна конструкция
Код: Выделить всё
interface MyFace
...
handleevent
cmInit:
{
...
}
...
cmClose:
{
RunInterface('MyFace');
}
...
Т.е., задача примерно такая: сделать интерфейс, который после отработки вызовет код из cmInit.
Den
Местный житель
Сообщения: 1846 Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:
Сообщение
Den » 25 июн 2014, 17:19
По всей видимости, бесконечный "вечный двигатель" )
RAJAH
Местный житель
Сообщения: 933 Зарегистрирован: 18 фев 2008, 12:49
Сообщение
RAJAH » 25 июн 2014, 17:21
Как тогда правильно поступить, чтобы интерфейс закрылся и заново запустился?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188 Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb
Сообщение
edward_K » 25 июн 2014, 17:24
и зачем такие сложности? Если нужен вечный двигатель это одно - хватит и просто блокировки на закрытие. Если что то другое - то зачем?
RAJAH
Местный житель
Сообщения: 933 Зарегистрирован: 18 фев 2008, 12:49
Сообщение
RAJAH » 25 июн 2014, 17:33
В общем, вот:
Код: Выделить всё
cmInit:
{
if RunInterface('F_FPCATALOG::GETCO', 1, 0, 0, podnrec) <> cmDefault then
begin
CloseInterface(0);
abort;
exit;
end;
}
Для выбранного ЦО строится browse. Логично, чтобы после работы с ним, пользователю не пришлось вызывать интерфейс заново, а закрытие происходило только при отказе выбирать ЦО.