CftClub.ru
Клуб специалистов ЦФТ-Банк

Как не дать закрыть форму
На страницу 1, 2, 3  След.
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle
Предыдущая тема :: Следующая тема  
Автор Сообщение
VUV
Участник


Вступление в Клуб: 06.10.2012
СообщениеПн Дек 24, 2012 08:40   Как не дать закрыть форму Ответить с цитатой
Полезность: Нет оценки
Форумчане , подскажите , как не дать закрыть форму при нажатии на "крестик" экранной формы ?
PS. Форма закрывается только при нажатии "ОК"
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПн Дек 24, 2012 09:24    Ответить с цитатой
Полезность: Нет оценки
В клиент-скрипте небходимо переменной MAIN присвоить NULL
_________________
всегда есть как минимум 2 выхода
VUV
Участник


Вступление в Клуб: 06.10.2012
СообщениеПн Дек 24, 2012 09:31    Ответить с цитатой
Полезность: Нет оценки
Alexsey пишет:
В клиент-скрипте небходимо переменной MAIN присвоить NULL



Если не сложно можно пример
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПн Дек 24, 2012 09:55    Ответить с цитатой
Полезность: Нет оценки
VUV пишет:
Alexsey пишет:
В клиент-скрипте небходимо переменной MAIN присвоить NULL



Если не сложно можно пример


Пример:
Код:
Public Function Main(LastControl)
   If LastControl Is OK Then
      if msgbox("Вы точно хотите удалить прикреплённый файл """ + FileName.Text + """ из хранилища?",vbYesNo+vbQuestion,"Внимание") = vbYes then
         Main = false
         Set fso = CreateObject("Scripting.FileSystemObject")
         fso.DeleteFile(FilePath.Text + FileName.Text)

         Main = True
      else
         Main = NULL
      end if
   Else
      Main = True 'Результат валидатора (True, False, NULL)   
   End If
End Function

_________________
всегда есть как минимум 2 выхода
VUV
Участник


Вступление в Клуб: 06.10.2012
СообщениеПн Дек 24, 2012 10:08    Ответить с цитатой
Полезность: Нет оценки
А как перехватить нажатие на "крестик" (закрытие) экранной формы ?
Alkov
Профи


Вступление в Клуб: 23.09.2010
СообщениеПн Дек 24, 2012 10:55    Ответить с цитатой
Полезность: Нет оценки
Крестик это тоже нажатие Отмена (Cancel)
VUV
Участник


Вступление в Клуб: 06.10.2012
СообщениеПн Дек 24, 2012 11:19    Ответить с цитатой
Полезность: Нет оценки
Alkov пишет:
Крестик это тоже нажатие Отмена (Cancel)


Если нажима на Отмену работает событие -
Sub Cancel_OnClick()
'здесь код'
End Sub

Но при нажатии на закрытие окна это событие не генерится , какой тогда обработчик для кнопки закрытия окна ?
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПн Дек 24, 2012 11:21    Ответить с цитатой
Полезность: Нет оценки
Цитата:
If LastControl Is OK Then
...
end if


можно так..
либо перехватить валидацию в секции "проверка".
все зависит от решаемой задачи.
_________________
всегда есть как минимум 2 выхода
VUV
Участник


Вступление в Клуб: 06.10.2012
СообщениеПн Дек 24, 2012 11:51    Ответить с цитатой
Полезность: Нет оценки
Public Function Main(LastControl)
If LastControl Is Nothing Then
' Действия при загрузке формы
Main = true
Else
if LastControl is Ok then
Main = True
else

Main = null
end if
End Function


при нажатии на кретик , срабатывает Main = null и окошко всё равно закрывается
VUV
Участник


Вступление в Клуб: 06.10.2012
СообщениеПн Дек 24, 2012 11:59    Ответить с цитатой
Полезность: Нет оценки
Может нужны какие-то особые доп. свойства для операции. Задача закрыть форму можно было только по кнопке "ОК" при условии заполнения данных на форме, иным способом закрыть окно нельзя
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеПн Дек 24, 2012 13:15    Ответить с цитатой
Полезность: Нет оценки
а как у вас будет организована возможность сознательного отказа пользователя от ввода? Если пользователь ошибся и запустил не ту операцию, либо сознательно передумал вводить данные и хочет отказаться от ввода? В принципе можно вообще убрать с формы кнопку "Отмена", но крестик убрать не получится.
ИМХО запретить возможность отказаться от ввода посредством нажатия на кнопку "Отмена" есть неверно.
_________________
всегда есть как минимум 2 выхода
svn
Профи


Вступление в Клуб: 04.02.2008
СообщениеПн Дек 24, 2012 13:44    Ответить с цитатой
Полезность: Нет оценки
да.. последнее время бизнес или аналитики дикуют:
то нельзя два раза распечатать чек, то экранную форму закрыть
куда катиться мир...
VUV
Участник


Вступление в Клуб: 06.10.2012
СообщениеПн Дек 24, 2012 13:45    Ответить с цитатой
Полезность: Нет оценки
Alexsey пишет:
а как у вас будет организована возможность сознательного отказа пользователя от ввода? Если пользователь ошибся и запустил не ту операцию, либо сознательно передумал вводить данные и хочет отказаться от ввода? В принципе можно вообще убрать с формы кнопку "Отмена", но крестик убрать не получится.
ИМХО запретить возможность отказаться от ввода посредством нажатия на кнопку "Отмена" есть неверно.


Сознательного отказа у пользователя нет и не может быть ) Пока оставил крестик как вариант "чёрного выхода" в случае возникновения каких-то обстоятельств.

Всем спасибо!
Paryshev_D
Участник


Вступление в Клуб: 26.10.2013
СообщениеСб Окт 26, 2013 03:55    Ответить с цитатой
Полезность: Нет оценки
Тоже возник этот вопрос. Перечисленных методы не работают, форма все равно закрывается. Есть ли другие способы перехватить закрытие окна через крестик?
Random
Эксперт


Вступление в Клуб: 27.06.2011
СообщениеПн Окт 28, 2013 12:44    Ответить с цитатой
Полезность: Нет оценки
Paryshev_D пишет:
Тоже возник этот вопрос. Перечисленных методы не работают, форма все равно закрывается. Есть ли другие способы перехватить закрытие окна через крестик?


А какой есть вариант отлова события нажатия кнопки Power?
Выдёргивания из розетки?

Нельзя зашивать операцию на то, что событие отмены не может произойти. Случаев много.

Если я действительно запустил операцию случайно и хочу выйти, чтобы ничего не поменялось, я тоже буду искать кнопку "вернуть всё как было", она же Cancel. И в крайнем случае (а финансово пострадать на Х миллионов никому не охота) буду дёргать комп из розетки.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Разработка в PL/PLUS. Оптимизация запросов Oracle Часовой пояс: GMT + 3
На страницу 1, 2, 3  След.
Страница 1 из 3

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru