Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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. И в крайнем случае (а финансово пострадать на Х миллионов никому не охота) буду дёргать комп из розетки. |
|
 |
|