Речь идет о определении с каким действием мы зашли форму редактирования и с каким результатом вышли.
Вообщем то с Request-ом все понятно и прозрачно.
С Respons-ом нет.
На метод MAV:Save.Kill вешаю message(SELF.Response)
При нажатии "ОК" SELF.Response = 1 = RequestCompleted
При нажатии "Отмена" SELF.Response = 0 <> RequestCancelled
Если проверять SELF.Response от ABC WindowManager-а, класса ThisWindow, на методе Kill
то по нажатию ОК ThisWindow.Response = 0 <>RequestCompleted
по нажатию "Отмена" ThisWindow.Response = 2 = RequestCancelled, но если нажать Esc, то ThisWindow.Response = 0 <>RequestCancelled
Response
Модератор: Andrew™
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Re: Response
это же прописные истины, в конце любой шаблонной процедуры перед RETURN стоитStillZero писал(а):Речь идет о определении с каким действием мы зашли форму редактирования и с каким результатом вышли.
Вообщем то с Request-ом все понятно и прозрачно.
С Respons-ом нет.
На метод MAV:Save.Kill вешаю message(SELF.Response)
При нажатии "ОК" SELF.Response = 1 = RequestCompleted
При нажатии "Отмена" SELF.Response = 0 <> RequestCancelled
Если проверять SELF.Response от ABC WindowManager-а, класса ThisWindow, на методе Kill
то по нажатию ОК ThisWindow.Response = 0 <>RequestCompleted
по нажатию "Отмена" ThisWindow.Response = 2 = RequestCancelled, но если нажать Esc, то ThisWindow.Response = 0 <>RequestCancelled
Код: Выделить всё
IF LocalResponse
GlobalResponse = LocalResponse
ELSE
GlobalResponse = RequestCancelled
END
а чего не понятного, в пред ответе я написал тебе как живёт LocalResponse в процедуре, в начале процеуры он очищается, при удачном выполнении по ?Ok присваивается в RequestCompletedStillZero писал(а):все равно не понял...
я ожидаю, что когда я нажму Отмена я получу в Response 2, а получаю 0
вот из help-а:
RequestCompleted EQUATE (1) ! Update Completed
RequestCancelled EQUATE (2) ! Update Aborted
и тока в конце процедуры происходит инициализация GlobalResponse по правилам из пред письма
- Admin
- Администратор
- Сообщения: 3960
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 25 раз
- Поблагодарили: 22 раза
- Контактная информация:
Давай я еще раз объясню...
Есть стандартная форма ABC. Во ее ответы при действиях:
Esc - SELF.Response = 0
Ok - SELF.Response = 1
Cancel - SELF.Response = 2
Есть твоя форма MAV. Во ее ответы при действиях:
Esc - SELF.Response = 0
Ok - SELF.Response = 1
Cancel - SELF.Response = 0 ! почему ??????
Объясни в чем дело?
Есть стандартная форма ABC. Во ее ответы при действиях:
Esc - SELF.Response = 0
Ok - SELF.Response = 1
Cancel - SELF.Response = 2
Есть твоя форма MAV. Во ее ответы при действиях:
Esc - SELF.Response = 0
Ok - SELF.Response = 1
Cancel - SELF.Response = 0 ! почему ??????
Объясни в чем дело?
если анализировать GlobalResponse в вызываемой Browse после вызова Form, он правильный?, ДАAdmin писал(а):Давай я еще раз объясню...
Есть стандартная форма ABC. Во ее ответы при действиях:
Esc - SELF.Response = 0
Ok - SELF.Response = 1
Cancel - SELF.Response = 2
Есть твоя форма MAV. Во ее ответы при действиях:
Esc - SELF.Response = 0
Ok - SELF.Response = 1
Cancel - SELF.Response = 0 ! почему ??????
Объясни в чем дело?
в самой форме, есть класс MAV:Save с SELF.Response, да, он приниает два значения 1 или 0, и УЖЕ в конце процедуры происходит инициалтзация GLobalResponse по правилам описанным выше, скорее всего тут правила в ABC и Legasy немного разные в самой форме редактирования, я заюзал правила Legasy