powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Защита от дураков срабатывает - зачем только ее писала?..
15 сообщений из 15, страница 1 из 1
Защита от дураков срабатывает - зачем только ее писала?..
    #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
Защита от дураков срабатывает - зачем только ее писала?..
    #33221056
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если THISFORM.contРед.txtГод.Value имеет источник данных типа Date, DateTime, то надо использовать YEAR(THISFORM.contРед.txtГод.Value)
...
Рейтинг: 0 / 0
Защита от дураков срабатывает - зачем только ее писала?..
    #33221086
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulWistЕсли THISFORM.contРед.txtГод.Value имеет источник данных типа Date, DateTime, то надо использовать YEAR(THISFORM.contРед.txtГод.Value)
Да нет, ControlSourse у меня там переменная lnДата, маска 9999.
...
Рейтинг: 0 / 0
Защита от дураков срабатывает - зачем только ее писала?..
    #33221118
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо CANCEL напишите RETURN.
...
Рейтинг: 0 / 0
Защита от дураков срабатывает - зачем только ее писала?..
    #33221132
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и упростите проверку:

Код: plaintext
1.
2.
3.
4.
5.
with THISFORM.contРед.txtГод
   if not between(val(.Value),  1991 ,  2003 )
       * здесь хорошо выругаться :)
       return
   endif
endwith
...
Рейтинг: 0 / 0
Защита от дураков срабатывает - зачем только ее писала?..
    #33221139
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что за тип у переменной lnДата, те что возвращает TYPE('lnДата') или в отладчике посмотрите какое значение имеет переменная lnДата когда нажата cmdOK
...
Рейтинг: 0 / 0
Защита от дураков срабатывает - зачем только ее писала?..
    #33221141
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в дизайнере выстафть пропертю у THISFORM.contРед.txtГод.Value=YEAR(DATE())
ЗЫ а условие имхо красифше такое поставить
Код: plaintext
IF BETWEEN(THISFORM.contРед.txtГод.Value,  1991 ,  2003 )
...
Рейтинг: 0 / 0
Защита от дураков срабатывает - зачем только ее писала?..
    #33221208
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень вам благодарна, леди и джентельмены!
Заработало:
Код: plaintext
IF NOT BETWEEN(THISFORM.contРед.txtГод.Value,  1991 ,  2003 ) 
А почему не рекомендуете CANCEL пользоваться?
...
Рейтинг: 0 / 0
Защита от дураков срабатывает - зачем только ее писала?..
    #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
Защита от дураков срабатывает - зачем только ее писала?..
    #33221260
Фотография Hel!Riser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛисонькаОчень вам благодарна, леди ....
Тольк, это кажись тебе пасиба Или Пашке
...
Рейтинг: 0 / 0
Защита от дураков срабатывает - зачем только ее писала?..
    #33221269
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hel!Riser ЛисонькаОчень вам благодарна, леди ....
Тольк, это кажись тебе пасиба Или Пашке

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

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

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

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

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


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