|
|
|
Проблема с событием When когда тыкаешь в textbox мышкой
|
|||
|---|---|---|---|
|
#18+
Привет! Собственно такая проблема encountered - не всегда отрабатывает When. Если по форме меж текстбоксами (в которых и отрабатывается When) перемещаться с помощью ТАБа/клавы, то он всегда отрабатывает на ура. Но стоит кликнуть в другое поле мышкой - все, молчок. Срабатывает аж когда кликнешь мышкой на еще любое другое поле, даже то, с которого ушел, т.е. как-бы со второго раза. При этом GotFocus срабатывает всегда. короче перенес весь код в GotFocus... вфп9сп1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 17:40 |
|
||
|
Проблема с событием When когда тыкаешь в textbox мышкой
|
|||
|---|---|---|---|
|
#18+
Это был вопрос или "мысли вслух"? Если вопрос, то в чем он заключается? А вообще-то, неплохо прежде чем спрашивать воспользоваться поиском http://www.sql.ru/forum/actualthread.aspx?tid=504752 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 18:06 |
|
||
|
Проблема с событием When когда тыкаешь в textbox мышкой
|
|||
|---|---|---|---|
|
#18+
Да, вопрос я написал, а затем вырезал чтобы вставить в др. месте и забыл... Впорос в том, глюк это или нет? И встречался ли кто-то с таким? Впрочем ответ вроде как по ссылке нашелся: Последовательность событий можешь через EventTracking посмотреть: form1.text1.Valid() form1.command1.When() form1.text1.LostFocus() form1.command1.GotFocus() form1.command1.Click() Последовательность событий меняется в случае перехода между объектами клавиатурой или мышкой. Приведенное "смешение" событий - это следствие использование мышки. Если же переход осуществляется при помощи только клавиатуры, то все происходит последовательно. Сначала все события "выхода" для одного объекта, затем все события "входа" для другого. Кроме того, при потерей фокуса формой (из объекта не выходили) последовательность совсем другая. А при программном перемещении - еще один вариант. Поэтому, использовать EventTracking надо с осторожностью. Понимая, что рассматривается всего-лишь один из множества вариантов действий пользователя. Повторюсь, в общем случае, как-то "закладываться" на последовательность выполнения событий - глупо. Это будет всего-лишь один из множества вариантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 18:43 |
|
||
|
Проблема с событием When когда тыкаешь в textbox мышкой
|
|||
|---|---|---|---|
|
#18+
цель: хочу чтобы в моих текстбоксах при получении фокуса включалась русская раскладка клавы, если это указано в пропертях текстбокса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 18:47 |
|
||
|
Проблема с событием When когда тыкаешь в textbox мышкой
|
|||
|---|---|---|---|
|
#18+
ВладимирМ А вообще-то, неплохо прежде чем спрашивать воспользоваться поиском я искал по слову When - не искало вообще, искал по словам When и textbox - результатов было мильён и все не то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 18:49 |
|
||
|
Проблема с событием When когда тыкаешь в textbox мышкой
|
|||
|---|---|---|---|
|
#18+
впрочем ответа там таки нет. Изменение последовательности событий не означает что событие вообще не должно произойти/отработать - а именно такую картину наблюдал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 18:51 |
|
||
|
Проблема с событием When когда тыкаешь в textbox мышкой
|
|||
|---|---|---|---|
|
#18+
CTAC-KOвпрочем ответа там таки нет. Изменение последовательности событий не означает что событие вообще не должно произойти/отработать - а именно такую картину наблюдал. Событие When определяет получит ли объект фокус или не получит. При тыкании мышкой фокус передается принудительно и нет смысла вызывать when. Менять раскладку клавы в обработчике события, которое еще только решает пускать ли фокус в данный объект, несколько опрометчиво. GotFocus для этого больше подходит ибо происходит ПОСЛЕ получения фокуса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 19:04 |
|
||
|
Проблема с событием When когда тыкаешь в textbox мышкой
|
|||
|---|---|---|---|
|
#18+
спасибо за ответ, теперь понятно... хотя и не совсем - со второго клика-то оно уже работает куда не тычь... Sergey Sizov.Менять раскладку клавы в обработчике события, которое еще только решает пускать ли фокус в данный объект, несколько опрометчиво. GotFocus для этого больше подходит ибо происходит ПОСЛЕ получения фокуса.к чему, собственно, я и пришел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2008, 20:17 |
|
||
|
Проблема с событием When когда тыкаешь в textbox мышкой
|
|||
|---|---|---|---|
|
#18+
CTAC-KOвпрочем ответа там таки нет. Изменение последовательности событий не означает что событие вообще не должно произойти/отработать - а именно такую картину наблюдал. Почему же. Ведь, скорее всего, ты делаешь еще и обратное переключение раскладки при выходе из объекта в LostFocus(). Вот и получаешь, что сначала по When устанавливаешь одну раскладку, а затем по LostFocus() раскладка сбрасывается в исходную. Вообще-же, сама идея автоматического изменения глобальных настроек операционной системы (в данном случае, раскладки клавиатуры) - порочная. Программа такие фокусы делать не должна. Не ее это задача. Кроме большого количества "теплых" слов от пользователей за такие "выкрутасы" ты ничего не услышишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 11:36 |
|
||
|
Проблема с событием When когда тыкаешь в textbox мышкой
|
|||
|---|---|---|---|
|
#18+
Володь, по-моему ты несколько погорячился. 1. Раскладка клавы индивидуальна для каждой запущенной проги и не зависит от раскладок в других прогах. То есть эта настройка не глобальная. 2. Если в некоторые поля должны вводится только латинские буквы при том, что все остальное вводится по-русски, очень даже удобно автоматическое переключение раскладки клавы именно в этих полях. Время ввода и количество нажимаемых клавиш сокращается очень сильно. Ругани от пользователей за использование такого механизма начиная еще с fpd2.6 не слышал ни разу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 11:46 |
|
||
|
Проблема с событием When когда тыкаешь в textbox мышкой
|
|||
|---|---|---|---|
|
#18+
По большому счету, к любым "выкрутасам" программы можно привыкнуть (приспособиться). Но, лично я был бы очень сильно против, если бы программа автоматически меняла раскладку клавиатуры. Вне зависимости от того, происходит ли это при перемещении между объектами одной формы или при переключении на разные формы. Здесь несколько проблем. Причем к собственно программированию они отношения не имеют. 1. Чисто психологическая. Я должен перестроится с русской раскладки на английскую. Т.е. перестать "видеть" русские буквы на клавиатуре и начать "видеть" английские. Ручное переключение раскладки для меня и служит таким сигналом, который "переключает" мое "видение" клавиатуры. При автоматическом механизме, я этого могу не заметить... Именно поэтому меня сильно раздражает PuntoSwitcher. Гадость страшная 2. Программы имеют "привычку" развиваться (изменяться). Это сейчас в данном поле могут быть только латинские символы. А "завтра" там понадобяться русские символы. Отключение автоматического механизма - означает "переучивание" пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 12:01 |
|
||
|
Проблема с событием When когда тыкаешь в textbox мышкой
|
|||
|---|---|---|---|
|
#18+
Вот, опять решение вопроса упирается в личные пристрастия. Это тебе пунто не удобен, а другие пищат от вострога. При МАССОВОМ вводе человек о ракладке забывает напрочь, совсем, наглухо. Он оперирует КЛАВИШАМИ с нужными символами, но никак не раскладкой. И потому операторы принимают автоматическое переключение как должное или даже с радостью, как избавление от необходимости помнить раскладки и постоянно их переключать. Володь, массовый ввод сильно отличается от набора текстов и потому подходы к нему иногда сильно другие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 12:21 |
|
||
|
Проблема с событием When когда тыкаешь в textbox мышкой
|
|||
|---|---|---|---|
|
#18+
При массовом вводе подходы действительно принципиально другие. Но у меня сильные сомнения, что в данном случае речь идет именно о таком случае. Где вы видели переключение мышкой между объектами одной формы при массовом вводе? Скорее всего, речь идет об очередном варианте "мне кажется , что пользователю будет удобнее" без какого-либо обсуждения этого вопроса с самими пользователями или с постановщиком задачи. Вопрос организации пользовательского интерфейса - это та вещь, которую ни в коем случае нельзя давать на откуп программиста. Результат, как правило, очень плачевный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2008, 12:45 |
|
||
|
|

start [/forum/topic.php?fid=41&tid=1587754]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
73ms |
get topic data: |
5ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 356ms |

| 0 / 0 |
