Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Можно ли в событии Valid узнать контрол для которого потом виполнится When?
|
|||
|---|---|---|---|
|
#18+
Можно ли в событии Valid узнать контрол для которого потом виполнится When(GotFocus)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 11:55 |
|
||
|
Можно ли в событии Valid узнать контрол для которого потом виполнится When?
|
|||
|---|---|---|---|
|
#18+
Нет. Это противоречит самой идеологии события Valid() - проверка перед выходом из объекта. Правда, если переход между объектами осуществляется мышкой, то порядок следования событий примерно такой: Text1.Valid() Text2.When() Text1.LostFocus() Text2.GotFocus() Т.е. в принципе, можно запомнить ссылку на объект в When и обработыть ее в LostFocus. Проблема только в том, что если переключение между объектами осуществляется через клавишу Tab (или вообще при помощи клавишь), то порядок срабатывания событий будет другой: Text1.Valid() Text1.LostFocus() Text2.When() Text2.GotFocus() Так что, логичнее определять не куда перейдет указатель, а откуда пришел, и если надо, возвращать фокус на место. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 12:36 |
|
||
|
Можно ли в событии Valid узнать контрол для которого потом виполнится When?
|
|||
|---|---|---|---|
|
#18+
Немного добавлю к предыдущему ответу. Если Valid возвратит число больше 0 - то оно будет означать - "на сколько контолов фокус прыгнет ваперед..." брр... Вот лучше английский вараинт этой фразы: "If a positive value is returned, the value specifies the number of controls the focus advances." Далее - дело техники и зависит от того, что Вам надо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 12:43 |
|
||
|
Можно ли в событии Valid узнать контрол для которого потом виполнится When?
|
|||
|---|---|---|---|
|
#18+
Дело в том, что мне надо узнать, на какой перевели фокус, поскольку в LostFocus должен быть примерно такой код: Код: plaintext 1. 2. 3. 4. Для каждого обьекта на форме?.. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 13:04 |
|
||
|
Можно ли в событии Valid узнать контрол для которого потом виполнится When?
|
|||
|---|---|---|---|
|
#18+
If a positive value is returned, the value specifies the number of controls the focus advances А откуда мне знать, какое value is returned? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 13:24 |
|
||
|
Можно ли в событии Valid узнать контрол для которого потом виполнится When?
|
|||
|---|---|---|---|
|
#18+
lnuА откуда мне знать, какое value is returned? А кто тут прораммист? Так вот эти Ваши условия и надо вводить в valid - там уже и задавать, что произойдет - если одно, то перевод на один объект и т.д.... А возвращаемое число - это всего лишь вспомогательный передаточный механизм, который должна рожать ваша бизнес - логика... Ибо в valid нельзя просто так писать многие вещи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 13:32 |
|
||
|
Можно ли в событии Valid узнать контрол для которого потом виполнится When?
|
|||
|---|---|---|---|
|
#18+
Вообще-то я думал так: в методе Valid this.TabIndex+dodefault() и у меня есть номер следующего контрола... Но dodefault()=.T., а не positive or negative value :( Ну ладно... Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 13:42 |
|
||
|
Можно ли в событии Valid узнать контрол для которого потом виполнится When?
|
|||
|---|---|---|---|
|
#18+
А возможно ли такое: ActiveControl_assign? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 13:52 |
|
||
|
Можно ли в событии Valid узнать контрол для которого потом виполнится When?
|
|||
|---|---|---|---|
|
#18+
Может мы не поняли друг - друга Пксть есть задача, например TEXT1 поле - в котором надо проанализировать значение введенного числа. В событие VALID пишем: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Или что-то в таком виде... Ну а перемещение по contrals будет идти в зависисмости от TabIndex ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 14:04 |
|
||
|
Можно ли в событии Valid узнать контрол для которого потом виполнится When?
|
|||
|---|---|---|---|
|
#18+
Мне надо знать куда перейдет фокус. Если мы на Text1, на чем будет фокус: на Text2 или на Text3. Т.е. новое значение Thisform.ActiveControl. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 14:17 |
|
||
|
Можно ли в событии Valid узнать контрол для которого потом виполнится When?
|
|||
|---|---|---|---|
|
#18+
В принципе, решения есть, но все они "кривоватые". Предлагаю использовать "одноразовый" таймер. 1) Кладешь на форму таймер у которого делаешь настройки ThisForm.Timer1.enabled=.F. ThisForm.Timer1.interval=10 2) В методе LostFocus для TextBox в котором нужен анализ включаешь этот таймер ThisForm.Timer1.enabled=.T. 3) А в собственно таймере пишешь примерно такую обработку Код: plaintext 1. 2. 3. Здесь я просто делаю вывод имени активного контрола, а тебе нужно будет написать твою обработку. Как видишь, таймер сам себя выключает, потому и "одноразовый", а проверку на enabled внутри таймера нужна чтобы не было повторных срабатываний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 14:57 |
|
||
|
Можно ли в событии Valid узнать контрол для которого потом виполнится When?
|
|||
|---|---|---|---|
|
#18+
lnuМне надо знать куда перейдет фокус. Если мы на Text1, на чем будет фокус: на Text2 или на Text3. Т.е. новое значение Thisform.ActiveControl. Так Вы же можете это указать - куда переводить фокус... Что-то я Вас не понимаю - ведь программист задает имя следующего объекта а не пользователь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 15:22 |
|
||
|
Можно ли в событии Valid узнать контрол для которого потом виполнится When?
|
|||
|---|---|---|---|
|
#18+
Так Вы же можете это указать - куда переводить фокус... Что-то я Вас не понимаю - ведь программист задает имя следующего объекта а не пользователь... Именно пользователь нажимає кнопку TAB или щелкает мышкой на другом контроле... Я делаю что-то вроде дизайнера справочников. Для поля єтого справочника я назначаю контрол (BaseClass="Container"),в котором, например, Label и Edit. Его можна перетаскивать, менять размеры как в дизайнере форм Фокса. На DBLClick я открываю контрол на редактирование (перемещение, изменение размеров) уже Label и Edit, что-то вроде как в Container в Дизайн-тайме (рисую вокруг контрола рамочку потолще...и т.д. и ставлю значение своего свойства editmode=.T.). Но если кликнуть в FormDesigner'e за приделами Container'a, то рамочка изчезает, єтого я и добиваюсь в своем контроле. Если фокус переходит на обьект за приделами моего контрола, то надо спрятать рамочку (editmode=.F), если нет, то рамочка остается... Вот єти условия мне и надо проверить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 16:03 |
|
||
|
Можно ли в событии Valid узнать контрол для которого потом виполнится When?
|
|||
|---|---|---|---|
|
#18+
Я не понял, почему ты не можешь спрятать рамочку при потере фокуса самим контейнером? Ведь перемещение по объектам внутри контейнера не вызовет потери фокуса контейнером! Т.е. в твоем случае достаточно просто в Container.LostFocus спрятать рамочку, а в Container.GotFocus снова ее отобразить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2004, 16:21 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32671271&tid=1595912]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 408ms |

| 0 / 0 |
