Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Защита от дураков срабатывает - зачем только ее писала?.. / 15 сообщений из 15, страница 1 из 1
17.08.2005, 15:56:52
    #33221025
Лисонька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Защита от дураков срабатывает - зачем только ее писала?..
Леди и джентельмены!
Помогите, шишку набиваю себе на ровном месте. У меня форма, в ней - контейнер contРед, в контейнере текстбоксы и кнопки. В форме пользователь редактирует выбранную запись. Потом либо сохраняет ее кнопкой cmdОК, либо отменят другой кнопкой и уходит из контейнера на иной объект формы. В cmdОК на Click поставила "защиту от дураков": контроль пустых текстбоксов, неверное сочетание данныех и т.д. Все срабатывает, а вот это не проходит (коды всех проверок аналогичны, правда там литеры, а не цифры):
Код: plaintext
1.
2.
3.
4.
IF THISFORM.contРед.txtГод.Value<'1991' .OR. THISFORM.contРед.txtГод.Value>'2003'
=MESSAGEBOX("Введите правильно год лимитирования!", 48 )
THISFORM.contРед.txtГод.SetFocus
CANCEL
ENDIF
На все значения txtГод срабатывает "защита" - год введен неверно. Пробовала по другому:
Код: plaintext
IF VAL(THISFORM.contРед.txtГод.Value)< 1991  .OR. VAL(THISFORM.contРед.txtГод.Value)> 2003 
Не проходит.
Можно, конечно, сделать это через метод Range, но не хочу. А что тогда делать?
Благодарю




Код: plaintext
    
...
Рейтинг: 0 / 0
17.08.2005, 16:04:47
    #33221056
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Защита от дураков срабатывает - зачем только ее писала?..
Если THISFORM.contРед.txtГод.Value имеет источник данных типа Date, DateTime, то надо использовать YEAR(THISFORM.contРед.txtГод.Value)
...
Рейтинг: 0 / 0
17.08.2005, 16:11:02
    #33221086
Лисонька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Защита от дураков срабатывает - зачем только ее писала?..
PaulWistЕсли THISFORM.contРед.txtГод.Value имеет источник данных типа Date, DateTime, то надо использовать YEAR(THISFORM.contРед.txtГод.Value)
Да нет, ControlSourse у меня там переменная lnДата, маска 9999.
...
Рейтинг: 0 / 0
17.08.2005, 16:20:00
    #33221118
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Защита от дураков срабатывает - зачем только ее писала?..
Вместо CANCEL напишите RETURN.
...
Рейтинг: 0 / 0
17.08.2005, 16:22:44
    #33221132
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Защита от дураков срабатывает - зачем только ее писала?..
и упростите проверку:

Код: plaintext
1.
2.
3.
4.
5.
with THISFORM.contРед.txtГод
   if not between(val(.Value),  1991 ,  2003 )
       * здесь хорошо выругаться :)
       return
   endif
endwith
...
Рейтинг: 0 / 0
17.08.2005, 16:24:08
    #33221139
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Защита от дураков срабатывает - зачем только ее писала?..
А что за тип у переменной lnДата, те что возвращает TYPE('lnДата') или в отладчике посмотрите какое значение имеет переменная lnДата когда нажата cmdOK
...
Рейтинг: 0 / 0
17.08.2005, 16:24:25
    #33221141
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Защита от дураков срабатывает - зачем только ее писала?..
в дизайнере выстафть пропертю у THISFORM.contРед.txtГод.Value=YEAR(DATE())
ЗЫ а условие имхо красифше такое поставить
Код: plaintext
IF BETWEEN(THISFORM.contРед.txtГод.Value,  1991 ,  2003 )
...
Рейтинг: 0 / 0
17.08.2005, 16:37:29
    #33221208
Лисонька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Защита от дураков срабатывает - зачем только ее писала?..
Очень вам благодарна, леди и джентельмены!
Заработало:
Код: plaintext
IF NOT BETWEEN(THISFORM.contРед.txtГод.Value,  1991 ,  2003 ) 
А почему не рекомендуете CANCEL пользоваться?
...
Рейтинг: 0 / 0
17.08.2005, 16:42:52
    #33221237
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Защита от дураков срабатывает - зачем только ее писала?..
CANCEL Command

Ends execution of the current Visual FoxPro program file.

Syntax

CANCEL

Remarks

Control returns to the Command window when Visual FoxPro is being used interactively. If a distributed run-time application is running, CANCEL terminates the application and control returns to Windows. If a program is executing in Visual FoxPro during design time, CANCEL terminates the program and control returns to the Command window.

Executing CANCEL releases all private variables.


Я думаю, это несколько не тот эффект который нужен - ведь вы не собираетесь каждый раз когда пользователь ошибся выходить из программы?
...
Рейтинг: 0 / 0
17.08.2005, 16:46:40
    #33221260
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Защита от дураков срабатывает - зачем только ее писала?..
ЛисонькаОчень вам благодарна, леди ....
Тольк, это кажись тебе пасиба Или Пашке
...
Рейтинг: 0 / 0
17.08.2005, 16:48:57
    #33221269
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Защита от дураков срабатывает - зачем только ее писала?..
Hel!Riser ЛисонькаОчень вам благодарна, леди ....
Тольк, это кажись тебе пасиба Или Пашке

Гы-ы-ы. Pivы на тебя нет.
...
Рейтинг: 0 / 0
17.08.2005, 16:53:27
    #33221295
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Защита от дураков срабатывает - зачем только ее писала?..
Сашк и ты здесь? Вам тут чего, медом намазано? :)
...
Рейтинг: 0 / 0
17.08.2005, 16:54:22
    #33221300
Лисонька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Защита от дураков срабатывает - зачем только ее писала?..
Анатолий ШироковЯ думаю, это несколько не тот эффект который нужен - ведь вы не собираетесь каждый раз когда пользователь ошибся выходить из программы?
Help, конечно, можно было и не цитировать. Это все понятно.
Но решение через CANCEL я видела в одном из топиков здесь или на Фоксклаб.
И программа у меня не завершается - прерывается цикл в Click и фокус появляется на нужном объекте.

Анатолий ШироковТольк, это кажись тебе пасиба Или Пашке
Очень смешно! У ника, между прочим, на лбу не написано М там у него или Ж. А обидеть никого не хотела.
...
Рейтинг: 0 / 0
17.08.2005, 23:52:02
    #33221977
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Защита от дураков срабатывает - зачем только ее писала?..
Hi Лисонька!

Обманули тебя, или не тот пример ты посмотрела - CANCEL прерывает полностью
исполнение программы, и для случая exe вообще вызывает выход. Даже в самой
среде это будет давать нехорошие последствия - не всё-же время ты будешь
форму из менеждера проекта запускать - захочется же более полноценное
приложение получить - с меню там, с другими формами :)

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
18.08.2005, 15:38:07
    #33223401
Лисонька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Защита от дураков срабатывает - зачем только ее писала?..
Ох, вот сейчас посмотрела мой весенний проект, я его в app-ешник перевела. Так вот я там тоже "защиту от дураков" прописывала. Проставлено везде CANCEL и везде же эта команда закомментирована, а ниже проставлено RETURN. Проект полностью на мне висит, значит, я и меняла CANCEL на RETURN. Даже не вспомню, когда это поменяла.
А этот проетк пишу сейчас, пользуясь записной книжкой с полезными советами из топиков. В ней как раз пример с CANCEL.
Благодарю.

Когда же я на эти грабли наступала?..
(Реплика в пользу фоксистов-женоненавистников из "Полового вопроса": память-то девичья! )
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Защита от дураков срабатывает - зачем только ее писала?.. / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]