Страница: 1 | 2 |
Вопрос: Обработка ошибок Text1.Text
Добавлено: 10.08.04 15:26
Автор вопроса: Andrey999 | Web-сайт:
Скиньте пожалуйста код обработки ошибок текстового поля. Так чтобы если в поле нет записи выскаивало сообщение о заполнении поля, и при нажатии ОК форма(подчиненная) не закрывалась, а оставалась открытой.
Ответы
Всего ответов: 17
Номер ответа: 1
Автор ответа:
.::EclipsE::.
ICQ: 208952501
Вопросов: 22
Ответов: 85
Профиль | | #1
Добавлено: 10.08.04 15:49
Option Explicit
Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
If Trim(Text1.Text) = Empty Then
MsgBox "Заполните текстовое поле"
Cancel = -1
End If
End Sub
Номер ответа: 2
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #2
Добавлено: 10.08.04 16:22
Лучше не в Анлоад, а в LostFocus поместить код...
Номер ответа: 3
Автор ответа:
.::EclipsE::.
ICQ: 208952501
Вопросов: 22
Ответов: 85
Профиль | | #3
Добавлено: 10.08.04 16:26
Чем лутьше? в LostFocus невсегда срабатывает, у меня к примеру вообще не сработало!!! можно еще в Terminate запихнуть.
Номер ответа: 4
Автор ответа:
Андрей Никитин
ICQ: 325172082
Вопросов: 3
Ответов: 81
Профиль | | #4
Добавлено: 10.08.04 16:52
А можно еще в событие Validate поместить...
Номер ответа: 5
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #5
Добавлено: 10.08.04 17:13
BoomeR, значит плохо поместил
Попросту когда текстовое поле теряет фокус, в него уже никто ничего не напишет, следовательно это оконечный вариант текста...
Номер ответа: 6
Автор ответа:
.::EclipsE::.
ICQ: 208952501
Вопросов: 22
Ответов: 85
Профиль | | #6
Добавлено: 10.08.04 17:16
sne А если ктото хочет скопировать текст скажем из файла в текстовое поле, его будет доставать сообщение что оно пустое?
Номер ответа: 7
Автор ответа:
.::EclipsE::.
ICQ: 208952501
Вопросов: 22
Ответов: 85
Профиль | | #7
Добавлено: 10.08.04 17:18
Андрей Никитин Насколько мне извесно у формы нет такого события как Validate
Номер ответа: 8
Автор ответа:
Андрей Никитин
ICQ: 325172082
Вопросов: 3
Ответов: 81
Профиль | | #8
Добавлено: 10.08.04 17:44
Все верно, если форму закрывать кнопкой "х" или "Alt + F4" то не LostFocus не Validate для текстового поля не вызываются. Остается событие Form_QueryUnload() там и проверяй при закрытии, а лучше напиши одну функцию по проверке текстового поля которая возвращала бы Boolean и вызывай эту функцию откуда хошь: и из LostFocus и из Form_QueryUnload. В любом случае значение возвращенное этой функцией можно использовать для установки параметра Cancel который либо оставляет фокус на текстовом поле либо не позволяет форме закрыться.
Номер ответа: 9
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #9
Добавлено: 10.08.04 18:24
В любом случае на Анлоад ставить глупо, тем-более что форма всего одна )
Андрей предлагает здравое решение, так что с ним спорить...
Номер ответа: 10
Автор ответа:
.::EclipsE::.
ICQ: 208952501
Вопросов: 22
Ответов: 85
Профиль | | #10
Добавлено: 10.08.04 18:31
2sne. Нечего не глупо! А то что предлагает Андрей и то о чем говорил я одно и тоже! Form_QueryUnload и Form_Unload происходит при выгрузке формы (разница толлько в том что в 1-м варианте можно еще отследить режим выгрузки). А то что форма всегда 1-а ты неправ. К примеру, я сейчас пишу программу, и в ней: 7 форм, 7 модулей, 2 класса и 6 контролов
Номер ответа: 11
Автор ответа:
Andrey999
ICQ: 30852361
Вопросов: 73
Ответов: 168
Web-сайт:
Профиль | | #11
Добавлено: 10.08.04 18:41
Все равно он закрывает форму и вываливается на главную
Номер ответа: 12
Автор ответа:
.::EclipsE::.
ICQ: 208952501
Вопросов: 22
Ответов: 85
Профиль | | #12
Добавлено: 10.08.04 18:54
А я о чем!
Номер ответа: 13
Автор ответа:
Andrey999
ICQ: 30852361
Вопросов: 73
Ответов: 168
Web-сайт:
Профиль | | #13
Добавлено: 10.08.04 19:03
Так что делать!!!!
Номер ответа: 14
Автор ответа:
.::EclipsE::.
ICQ: 208952501
Вопросов: 22
Ответов: 85
Профиль | | #14
Добавлено: 10.08.04 19:06
Вешатся
Номер ответа: 15
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #15
Добавлено: 10.08.04 19:37
Я про предложение о исполнении кода при потере фокуса и при выгрузке формы, я не дурак и прекрасно знаю что такое Unload и что такое Query, вериш нет
А в предыдущем своем посте я чуть-чуть неверно отписал:
В любом случае на Анлоад ставить глупо, тем-более если форма всего одна )
Так будет вернее!