|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
Есть VFP9, форма, на форме TEXTBOX, в который надо вводить только положительные числа и 0 Конечно можно в LostFocus или Valid, написать код проверки если отрицательное то выдать сообщение, и курсор не выпускать из текст бокса, но есть метод RangeLow, в хелпе написано, что есть параметр в этом методе, на самом деле параметра почему то нет, как он работает не понятно или это не тот случай, и RangeLow не для этих целей предназначен.. или есть другие способы контроля нижней границы при вводе.. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2008, 07:31 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
положите на форму вместо текстбокса спиннер и настройте ему необходимые св-ва (миним. и максим. значения) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2008, 10:11 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
Нет, спинер не прокатит, вводится сумма и она не должна быть меньше 0...поэтому и вводится Textbox, вот и возник вопрос можно ли воспользоваться RangeLow и как в Textbox(е) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2008, 11:25 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
А все-таки чем спиннер не хорош. Там задается и верхнее максимальное и нижнее минимальное и шаг Установите от 0 и до +2147483647 и будет Вам счастье Value -> 0.00 ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2008, 12:22 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
ну у спинера нет дробных чисел..., конечно можно и спиннер, на крайняк...но как это сделать в textbox ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2008, 12:28 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
Насчет отсутствия дробных чисел - вы неправы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2008, 12:37 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
В KeyPress() написать обработку клавиши '-', чтоб она игнорировалась. Или лучше в InteractiveChange() проверять значение, если отрицательное, то убирать знак числа. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2008, 13:01 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
Конечно же можно воспользоваться и KeyPress() и InteractiveChange() и Valid и LostFocus, всё это можно сделать....но для чего в TextBox стоит метод RangeLow(контроль нижней границы, как я понимаю ), как им пользоваться, и в чём отличие от приведённых выше методов ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2008, 13:13 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
ННовичокКонечно же можно воспользоваться и KeyPress() и InteractiveChange() и Valid и LostFocus, всё это можно сделать....но для чего в TextBox стоит метод RangeLow(контроль нижней границы, как я понимаю ), как им пользоваться, и в чём отличие от приведённых выше методов Ну, прочитайте же, наконец Хелп!!! Visual FoxPro 9.0 RangeLow Event For a spinner or text box, occurs when the control loses the focus. For a combo box or list box, occurs when the control receives the focus. PROCEDURE Object.RangeLow Remarks Applies To: ComboBox | ListBox | Spinner | TextBox A RangeLow event can return a numeric value to Visual FoxPro through a RETURN statement. For a spinner or a text box with a numeric value, if the value returned to Visual FoxPro is greater than the value entered in the control, the control retains the focus. For a combo box or list box, the value returned to Visual FoxPro specifies which item in the control is initially selected, For example, if 2 is returned to Visual FoxPro, the second item in the control is initially selected. See Also Reference KeyboardHighValue, KeyboardLowValue Properties RangeHigh Event RETURN Command SpinnerHighValue, SpinnerLowValue Properties Other Resources Events (Visual FoxPro) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2008, 13:34 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
Из Help авторСобытие RangeLow может вернуть численное значение в Visual FoxPro с помощью оператора RETURN. Для элементов управления spinner или text box, оперирующих с численными значениями, в случае, если значение, возвращаемое в Visual FoxPro, больше, чем значение, введенное в текстовой части элемента управления, фокус остается на элемента управления. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2008, 13:35 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
ННовичокну у спинера нет дробных чисел..., конечно можно и спиннер, на крайняк...но как это сделать в textbox ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2008, 14:59 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
Да читал я этот хелп, просто не въезжаю, открываю этот метод где я должен написать Return и т.д....вот и просил что-нибудь для примера... если я буду писать типа if this.value<0 return 0 endif то этот код могу написать и в Lostfocus, и возник вопрос в отличии, хелп, хелпом , но может на каком-нибуль примереююючто там пишется в методе RangeLow ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2008, 14:59 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
ННовичокДа читал я этот хелп, просто не въезжаю, открываю этот метод где я должен написать Return и т.д....вот и просил что-нибудь для примера... если я буду писать типа if this.value<0 return 0 endif то этот код могу написать и в Lostfocus, и возник вопрос в отличии, хелп, хелпом , но может на каком-нибуль примереююючто там пишется в методе RangeLow В методе реакции на выход за границу разрешенного диапазона еще раз делать проверку на этот же самый выход? Не находите это несколько ... не правильным? Метод вызывается для обработки события выхода за пределы, а не для проверки. Разница чуствуется? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2008, 15:56 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
Фу-у-у, ну наконец-то мы подошли к самому главному....где ставить в TextBox(vfp9) "границу разрешенного диапазона"... Например в FPD 2.6. Help написано... "...RANGE [nLowerBound] [, nUpperBound] Задает диапазон допустимых значений для поля ввода значения. Если введенное в поле значение не принадлежит указанному диапазону, выдается сообщение, показывающее правильный диапазон....." ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2008, 05:46 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
oFrm = CREATEOBJECT('Form') oFrm.ADDOBJECT('txt1', 'oTxt') oFrm.txt1.Value=0 oFrm.txt1.Visible=.T. oFrm.Show(1) DEFINE CLASS oTxt AS textbox nLow = -5 nHigh = 5 PROCEDURE RangeLow RETURN This.nLow ENDPROC PROCEDURE RangeHigh RETURN This.nHigh ENDPROC ENDDEFINE ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2008, 10:33 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
авторФу-у-у, ну наконец-то мы подошли к самому главному ага, самое главное это то, что старшая версия отличается от 2.6 предлагаю Вам решение Вашей проблемы ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2008, 10:38 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
Я конечно извиняюсь, что у меня наверное анахраичное мышление...но я работаю через Form Disagner, поэтому оба варианты хороши, но вариант через класс реализован в Textbox через Valid, да и с классами никогда не приходилось сталкиваться, как-то без них всё проходило...а вариант от "krin2"..я не смог перенести в Form Disagner, так как RETURN This.nLow, это надо задать как-то свойство объекту TextBox(никогда не использовал метод AddProperty), попытался писать и RETURN -5 и RETURN nLow (предварительно объъявив nlow,nhigh в процедуре load) и RETURN Thisform.nLow(предварительно создав свойства nlow), не получается контроль, выходит ошибка несоответствия типа данных, хотя оба предложенных варианта работают отлично...но хотелось бы то же самое, но через Form Disagner ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2008, 12:17 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
ННовичок, правильно сделал, но посмотри у себя TYPE('txt.Value') - не зря же oFrm.txt1.Value=0 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2008, 12:48 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
авторда и с классами никогда не приходилось сталкиваться ну может тогда использовать 2,6? не нужно применять приемы, которые использовались ранее разработка без использования ООП в вфп9 и то, что Вы не желаете освоить эти приемы программирования - это как раз и беда. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2008, 12:58 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
классы из виз-х библиотек можно визуально положить на обычную scx-форму вот пример этого посмотрите на пример разработки класса и использование его в форме используя данный прием Вы облегчите себе разработку +разработанное Вами приложение с примернением приемов ООП будет более стабильным +Вы облегчите себе задачу при дальнейшем масштабировании и сопровождении(видоизменнении) таких приложений ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2008, 13:36 |
|
Чем отличается RangeLow от Valid
|
|||
---|---|---|---|
#18+
Большое спасибо,всем ответившим....теперь стало всё понятно...хотя остлсь пара вопросов...типа как осуществить контроль в этом случае только отрицательных чисел, если в RangeHigh, поставить 0, то 0 будет включён в отрицательные числа, хотя его надо исключить(типа все отрицательные числа до 0) ...ну и сообщения о выходе за пределы, как я понимаю тоже не редактируются..., но не актуально...если прижмёт, то у меня в запасе второй вариант напишем всё через классы...:-))) ещё раз спасибо....:-)) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2008, 19:51 |
|
|
start [/forum/topic.php?fid=41&msg=35598179&tid=1587171]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
79ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 702ms |
total: | 868ms |
0 / 0 |