powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрет потери фокуса TextBox-ом
11 сообщений из 11, страница 1 из 1
Запрет потери фокуса TextBox-ом
    #32252386
EsKor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как запретить/предотвратить потерю фокуса TextBox-ом по нажатию клавиши Enter?
...
Рейтинг: 0 / 0
Запрет потери фокуса TextBox-ом
    #32252388
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например так :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
DEFINE CLASS Text1 AS TextBox

PROCEDURE KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl
IF nKeyCode =  13 
	NODEFAULT 
ENDIF 

ENDDEFINE
...
Рейтинг: 0 / 0
Запрет потери фокуса TextBox-ом
    #32252838
EsKor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Crip
Спасибо!
А я, что-то зациклился на RETURN .F. Оказывается я не понимаю действий RETURN .F. и NODEFAULT, хотя не раз их уже применял.
Если не затруднительно, поясните (или дайте ссылку) пожалуйста их действие, а также особенности, отличия, если таковые имеются.
...
Рейтинг: 0 / 0
Запрет потери фокуса TextBox-ом
    #32252883
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valid Event
Occurs before a control loses the focus.
PROCEDURE Control.Valid
Remarks
If the Valid event returns true (.T.), the control can lose focus - focus might not pass to another control. If the Valid event returns false (.F.), the control does not lose focus.

The Valid event can also return a numeric value. Returning a numeric value has one of three effects:

If 0 is returned, the control does not lose focus.
If a positive value is returned, the value specifies the number of controls the focus advances.
If a negative value is returned, the value specifies the number of controls the focus moves back. For example, if the Valid event returns –1, the previous control gets the focus.

Короче RETURN .F. для Valid итолько для него оставит фокус на том же объекте.

NODEFAULT
Prevents Visual FoxPro from performing its default event or method processing for Visual FoxPro events and methods. For example, if the KeyPress event occurs, including NODEFAULT in the KeyPress procedure or function prevents Visual FoxPro from placing the key press into the Visual FoxPro keyboard buffer. This makes it possible for you to create a KeyPress procedure that enables you to test which key is pressed before the key is sent to the keyboard buffer

NODEFAULT для того чтобы подавить выполнения кода обработки события базового класса. В KeyPress соотвественно предотвращает посылку символов в буфер клавиатуры Фокса.
Использует при работе с родными классам фокса. Не требуется использовать NODEFAULT при работе со своими классами.

З.Ы. Привет землякам :)
...
Рейтинг: 0 / 0
Запрет потери фокуса TextBox-ом
    #32252952
Немного неточно
нужен еще
else
dodefault(nkeycode,nshiftaltctrl) в приведенном коде keypress. иначе никакие другие символы набираться не будут
...
Рейтинг: 0 / 0
Запрет потери фокуса TextBox-ом
    #32252988
EsKor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо!
Знакомый текст из "хельпа". Правда хоть здесь надеялся от аглицкого "убежать", да видать не судьба.
Теперича, уж только завтра буду репу чесать и экспериментировать, пока до мозжечка не дойдет, если текучка, как часто бывает, не завалит.

>Crip
Привет принимаю, спасибо!
Прими и наш - большой, огромный и горячий!
Еще немного и окажется, что живем в соседних квартирах, ну хотя бы пол лаптя по карте. :o)
...
Рейтинг: 0 / 0
Запрет потери фокуса TextBox-ом
    #32253024
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Владимир Журавлев
Почему же? Всегда набирались, а теперь не будут? У меня по крайней мере все набирается...
2EsKor
В соседних квартирах врядли. Я просто раньше в Якутске жил...
...
Рейтинг: 0 / 0
Запрет потери фокуса TextBox-ом
    #32253028
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного неточно нужен еще
else
dodefault(nkeycode,nshiftaltctrl) в приведенном коде keypress. иначе никакие другие символы набираться не будут


Нет, не нужно. Если сделать DoDefault(), то произойдет дублирование. Т.е. каждый символ будет выполняться 2 раза. По крайней мере именно такая логика работы KeyPress наблюдается в VFP6SP5.

Т.е. вполне достаточно NODEFAULT для ненужных символов, а нужные напечатаются и так.
...
Рейтинг: 0 / 0
Запрет потери фокуса TextBox-ом
    #32253152
Дубли только будут, если текстовая коробка в гориде, тогда dodefault не нужен
В простом текстбоксе нужен обязательно
...
Рейтинг: 0 / 0
Запрет потери фокуса TextBox-ом
    #32253204
EsKor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот попробовал с DODEFAULT и без оного в "простом текстбоксе".
Получилось все как и указывал ВладимирМ :
- с DODEFAULT идет дублирование;
- без DODEFAULT все "прекрасно и удивительно".

Ох уж эти бесчисленные тонкости в VFP. :o(

>Crip
Сам то я родом с Урала, Пермяк - соленые уши. :o)
Да вот 17 лет назад занесла нелегкая...
...
Рейтинг: 0 / 0
Запрет потери фокуса TextBox-ом
    #32253227
Aijik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не спорьте, "лучше один раз увидеть..." (с) :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
oForm=CREATEOBJECT( "myform" )
oForm.Show( 1 )


DEFINE CLASS myform AS form

    AutoCenter = .T.

    ADD OBJECT Text1 AS Textbox WITH ;
        Height =  24 , ;
        Left =  24 , ;
        Top =  40 , ;
        Width =  100 

    ADD OBJECT command1 AS commandbutton WITH ;
        Top =  100 , ;
        Left =  20 , ;
        Height =  27 , ;
        Width =  84 

    PROCEDURE Text1.KeyPress
        LPARAMETERS nKeyCode, nShiftAltCtrl

        IF nKeyCode =  13 
            NODEFAULT 
        ENDIF        


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


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