Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с событием When когда тыкаешь в textbox мышкой / 14 сообщений из 14, страница 1 из 1
21.05.2008, 17:40
    #35326926
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с событием When когда тыкаешь в textbox мышкой
Привет!

Собственно такая проблема encountered - не всегда отрабатывает When. Если по форме меж текстбоксами (в которых и отрабатывается When) перемещаться с помощью ТАБа/клавы, то он всегда отрабатывает на ура. Но стоит кликнуть в другое поле мышкой - все, молчок. Срабатывает аж когда кликнешь мышкой на еще любое другое поле, даже то, с которого ушел, т.е. как-бы со второго раза. При этом GotFocus срабатывает всегда.

короче перенес весь код в GotFocus...

вфп9сп1
...
Рейтинг: 0 / 0
21.05.2008, 18:06
    #35327029
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с событием When когда тыкаешь в textbox мышкой
Это был вопрос или "мысли вслух"? Если вопрос, то в чем он заключается? А вообще-то, неплохо прежде чем спрашивать воспользоваться поиском

http://www.sql.ru/forum/actualthread.aspx?tid=504752
...
Рейтинг: 0 / 0
21.05.2008, 18:43
    #35327140
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с событием When когда тыкаешь в textbox мышкой
Да, вопрос я написал, а затем вырезал чтобы вставить в др. месте и забыл...

Впорос в том, глюк это или нет? И встречался ли кто-то с таким?

Впрочем ответ вроде как по ссылке нашелся:

Последовательность событий можешь через EventTracking посмотреть:
form1.text1.Valid()
form1.command1.When()
form1.text1.LostFocus()
form1.command1.GotFocus()
form1.command1.Click()


Последовательность событий меняется в случае перехода между объектами клавиатурой или мышкой.

Приведенное "смешение" событий - это следствие использование мышки. Если же переход осуществляется при помощи только клавиатуры, то все происходит последовательно. Сначала все события "выхода" для одного объекта, затем все события "входа" для другого.

Кроме того, при потерей фокуса формой (из объекта не выходили) последовательность совсем другая. А при программном перемещении - еще один вариант.

Поэтому, использовать EventTracking надо с осторожностью. Понимая, что рассматривается всего-лишь один из множества вариантов действий пользователя.

Повторюсь, в общем случае, как-то "закладываться" на последовательность выполнения событий - глупо. Это будет всего-лишь один из множества вариантов.
...
Рейтинг: 0 / 0
21.05.2008, 18:47
    #35327150
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с событием When когда тыкаешь в textbox мышкой
цель: хочу чтобы в моих текстбоксах при получении фокуса включалась русская раскладка клавы, если это указано в пропертях текстбокса
...
Рейтинг: 0 / 0
21.05.2008, 18:49
    #35327155
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с событием When когда тыкаешь в textbox мышкой
ВладимирМ А вообще-то, неплохо прежде чем спрашивать воспользоваться поиском я искал по слову When - не искало вообще, искал по словам When и textbox - результатов было мильён и все не то
...
Рейтинг: 0 / 0
21.05.2008, 18:51
    #35327164
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с событием When когда тыкаешь в textbox мышкой
впрочем ответа там таки нет.

Изменение последовательности событий не означает что событие вообще не должно произойти/отработать - а именно такую картину наблюдал.
...
Рейтинг: 0 / 0
21.05.2008, 19:04
    #35327203
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с событием When когда тыкаешь в textbox мышкой
CTAC-KOвпрочем ответа там таки нет.

Изменение последовательности событий не означает что событие вообще не должно произойти/отработать - а именно такую картину наблюдал.
Событие When определяет получит ли объект фокус или не получит. При тыкании мышкой фокус передается принудительно и нет смысла вызывать when.
Менять раскладку клавы в обработчике события, которое еще только решает пускать ли фокус в данный объект, несколько опрометчиво. GotFocus для этого больше подходит ибо происходит ПОСЛЕ получения фокуса.
...
Рейтинг: 0 / 0
21.05.2008, 20:17
    #35327308
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с событием When когда тыкаешь в textbox мышкой
спасибо за ответ, теперь понятно... хотя и не совсем - со второго клика-то оно уже работает куда не тычь...
Sergey Sizov.Менять раскладку клавы в обработчике события, которое еще только решает пускать ли фокус в данный объект, несколько опрометчиво. GotFocus для этого больше подходит ибо происходит ПОСЛЕ получения фокуса.к чему, собственно, я и пришел...
...
Рейтинг: 0 / 0
22.05.2008, 11:36
    #35327894
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с событием When когда тыкаешь в textbox мышкой
CTAC-KOвпрочем ответа там таки нет.

Изменение последовательности событий не означает что событие вообще не должно произойти/отработать - а именно такую картину наблюдал.
Почему же. Ведь, скорее всего, ты делаешь еще и обратное переключение раскладки при выходе из объекта в LostFocus(). Вот и получаешь, что сначала по When устанавливаешь одну раскладку, а затем по LostFocus() раскладка сбрасывается в исходную.

Вообще-же, сама идея автоматического изменения глобальных настроек операционной системы (в данном случае, раскладки клавиатуры) - порочная. Программа такие фокусы делать не должна. Не ее это задача. Кроме большого количества "теплых" слов от пользователей за такие "выкрутасы" ты ничего не услышишь.
...
Рейтинг: 0 / 0
22.05.2008, 11:46
    #35327949
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с событием When когда тыкаешь в textbox мышкой
Володь, по-моему ты несколько погорячился.
1. Раскладка клавы индивидуальна для каждой запущенной проги и не зависит от раскладок в других прогах. То есть эта настройка не глобальная.
2. Если в некоторые поля должны вводится только латинские буквы при том, что все остальное вводится по-русски, очень даже удобно автоматическое переключение раскладки клавы именно в этих полях. Время ввода и количество нажимаемых клавиш сокращается очень сильно. Ругани от пользователей за использование такого механизма начиная еще с fpd2.6 не слышал ни разу.
...
Рейтинг: 0 / 0
22.05.2008, 12:01
    #35328017
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с событием When когда тыкаешь в textbox мышкой
По большому счету, к любым "выкрутасам" программы можно привыкнуть (приспособиться). Но, лично я был бы очень сильно против, если бы программа автоматически меняла раскладку клавиатуры. Вне зависимости от того, происходит ли это при перемещении между объектами одной формы или при переключении на разные формы.

Здесь несколько проблем. Причем к собственно программированию они отношения не имеют.

1. Чисто психологическая. Я должен перестроится с русской раскладки на английскую. Т.е. перестать "видеть" русские буквы на клавиатуре и начать "видеть" английские. Ручное переключение раскладки для меня и служит таким сигналом, который "переключает" мое "видение" клавиатуры. При автоматическом механизме, я этого могу не заметить...

Именно поэтому меня сильно раздражает PuntoSwitcher. Гадость страшная

2. Программы имеют "привычку" развиваться (изменяться). Это сейчас в данном поле могут быть только латинские символы. А "завтра" там понадобяться русские символы. Отключение автоматического механизма - означает "переучивание" пользователя.
...
Рейтинг: 0 / 0
22.05.2008, 12:21
    #35328114
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с событием When когда тыкаешь в textbox мышкой
Вот, опять решение вопроса упирается в личные пристрастия. Это тебе пунто не удобен, а другие пищат от вострога.
При МАССОВОМ вводе человек о ракладке забывает напрочь, совсем, наглухо. Он оперирует КЛАВИШАМИ с нужными символами, но никак не раскладкой. И потому операторы принимают автоматическое переключение как должное или даже с радостью, как избавление от необходимости помнить раскладки и постоянно их переключать.
Володь, массовый ввод сильно отличается от набора текстов и потому подходы к нему иногда сильно другие.
...
Рейтинг: 0 / 0
22.05.2008, 12:45
    #35328238
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с событием When когда тыкаешь в textbox мышкой
При массовом вводе подходы действительно принципиально другие. Но у меня сильные сомнения, что в данном случае речь идет именно о таком случае. Где вы видели переключение мышкой между объектами одной формы при массовом вводе?

Скорее всего, речь идет об очередном варианте "мне кажется , что пользователю будет удобнее" без какого-либо обсуждения этого вопроса с самими пользователями или с постановщиком задачи.

Вопрос организации пользовательского интерфейса - это та вещь, которую ни в коем случае нельзя давать на откуп программиста. Результат, как правило, очень плачевный.
...
Рейтинг: 0 / 0
22.05.2008, 12:50
    #35328266
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с событием When когда тыкаешь в textbox мышкой
А вот тут полностью соглашусь.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с событием When когда тыкаешь в textbox мышкой / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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