|
|
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
Господа, подскажите пожалуйста как решить проблему. Нужно делать перемещение фокуса между Edit и VST следующим образом: 1. Перемещаюсь по строкам VST стрелками на клавиатуре вверх-вниз. При каждом нажатии на клавишу стрелки фокус должен перемещаться на Edit, где потом остается до получения результата сканирования сканером или нового нажатия на стрелку (если не надо сканировать). 2. Потом в зависимости отсканировали или нет: 2.1. Если что-то отсканировали, происходят действия по записи результата, потом фокус должен автоматически переместиться на след. строку VST, чтобы она выделилилась и соответственно сразу снова перейти на Edit 2.2. Если ничего пока не отсканировали, то фокус остается в Edit сколько угодно долго до нового нажатия на клавишу стрелки вверх или вниз на клавиатуре - тогда фокус также должен автоматически переместиться на след. строку VST, чтобы она выделилилась и соответственно сразу снова перейти на Edit Если делаю так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Тогда работает, но только для 1-й строки - фокус перемещается на Edit, но там естественно и остается (см. скрин) Если добавить Код: pascal 1. 2. 3. 4. Тогда фокус не остается в ожидании в Edit, а сразу возвращается на VST Как можно сделать чтобы он оставался там до момента сканирования или нового нажатия на стрелку, а потом автоматически перемешался на нужную строку VST и снова сразу возвращался на Edit? П.С. перехват нажатия курсорных клавиш на уровне приложения, а не через события VST http://delphiworld.narod.ru/base/catch_cursors_keys2.html дал тот же результат П.П.С. Резюмируя, мне нужно следующее: юзер щелкает мышью на первую строку документа - фокус сразу перемещается на Edit - он сканирует код, который привязывается именно к этой строке документа (или не сканирует, если кода нет). Дальше уже на клаве нажимает стрелку вниз, переходит на второу строку документа, фокус снова автоматически перемещается на Edit, юзер снова скнирует или нет и так до самого конца документа. Возможно вообще это реализовать без нажатия доп. клавиш кроме стрелок вверх-вниз и события сканирования, результат которого отображается в Edit? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 10:41 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
Так лови KeyDown в Edit и дальше по ситуации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 10:56 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
авторТогда работает, но только для 1-й строки - фокус перемещается на Edit, но там естественно и остается Напишите код в Edit, который при нажатии на стрелку возвращает курсор в VST ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 10:57 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
арт2010, что такое VST и Edit? Наверное, название каких-то объектов? Указывай тип объектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 11:18 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
ъъъъъ - TVirtualStringTree и TEdit DimaBr - точно! простейшее решение - оба события повесить на одну и ту же клавишу. Сделал так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: pascal 1. 2. 3. 4. 5. Правда приходится нажимать стрелку 2 раза, то есть немного не то что я хотел, но результат тот же Так что дальше наверное не буду копать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 15:10 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
арт2010Сделал так Key обнулить забыл чтобы стандартный обработчик не срабатывал. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 15:19 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, добавил, благодарю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 15:28 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
Черезжопное решение. За каким хреном тебе вообще уходить из TEdit? Судя по посту чтоб переместится на следующую строку в VST и вернуться обратно? Открою секрет, переместится можно и без фокусировки VST ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2020, 23:32 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
white_nigger, так точно! Мне нужно максимально ускорить вбивание кодов DataMatrix, которое будет происходит вручную. А так как в доке может быть сотня строк, нужно максимально избавиться от лишних нажатий клавиш. Алгоритм такоей - перемещение по VST как и было описано - стрелками, затем когда выбрана нужная строка, фокус должен быть на Edit - иначе не произойдет сканирование. Но как узнать что сканирование завершилось и код нужно записать (пока что в само VST, потом при проводке дока - уже в БД)? Сначала у меня была запись кода по нажатию Enter - но это значит лишнее нажатие клавишы, то есть работа удваивается. Либо как-то обрабатывать работу самого сканера, но некогда с этим заморчиваться. Теперь вот подтверждение сделал тоже стрелкой - тоже двойная работа получается но хотя бы на одной клавише, что явно быстрее. Но если есть возможность избавиться от лишнего нажатия стрелки, буду премного благодарен за подсказку - как это сделать? При этом обязательные условия, которые есть сейчас, должны сохраниться: 1) перемещение по строкам VST должно сопровождаться выделением текущей выбранной строки цветом; 2) перемещаться стрелками можно как вверх так и вниз; 3) выделенная срока после сканирования не должна скидываться на первую строку VST 4) юзер может перемещаться по VST не только стрелками, но и выбрать любую строку мышью ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 10:05 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
Я один не понимаю, как наличие фокуса в Edit связано с неким "сканированием"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 11:09 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
арт2010фокус должен быть на Edit - иначе не произойдет сканирование. "Уже смешно." (с) Даже если сканер прикидывается клавиатурой, это ещё не повод. арт2010Но как узнать что сканирование завершилось и код нужно записать Внезапно, но сканер обычно посылает признак "конец кода". Для случая выше клавиша программируется и это может быть Enter, например. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 12:20 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal Я один не понимаю, как наличие фокуса в Edit связано с неким "сканированием"? Ручные сканеры штрих-кодов имитируют нажатие клавиш на клавиатуре. Правда когда я похожую задаче решал - я просто делал обработчик символов и при нажатии на цифру (штрихкод) программно отправлял данные в нужное поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 12:23 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
alekcvp Ручные сканеры штрих-кодов имитируют нажатие клавиш на клавиатуре. Правда когда я похожую задаче решал - я просто делал обработчик символов и при нажатии на цифру (штрихкод) программно отправлял данные в нужное поле. Ясно. Только неясно, на кой нужен edit. Можно ловить непосредственно в VST, не говоря уже о более корректных решениях типа WM_KEY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 14:15 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
Сканирование в определённое окно (Edit или VST) уже само по себе не кошерно. Пользователь случайно ткнул мышкой в сторону и сканирование больше не работает. Нужно переводить сканер в режим USB-HID и использовать компонент TJvHidDeviceController ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 14:37 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal, тогда встает проблема отслеживания к чему относится введенный символ - к DataMatrix или нет, потому что строки VST могут редактироваться. Также может редактироваться инфа в остальных Edit-ах в шапке документа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 14:37 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
Сканер (даже в режиме клавиатуры) посылает символ-префикс и символ-суффикс. Отслеживание тривиально. Но, как уже сказали, лучше его таки вывести из клавиатурного режима. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 14:40 |
|
||
|
Перемещение фокуса между Edit и VST
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal alekcvp Ручные сканеры штрих-кодов имитируют нажатие клавиш на клавиатуре. Правда когда я похожую задаче решал - я просто делал обработчик символов и при нажатии на цифру (штрихкод) программно отправлял данные в нужное поле. Ясно. Только неясно, на кой нужен edit. Можно ловить непосредственно в VST, не говоря уже о более корректных решениях типа WM_KEY Для чего он нужен автору я не знаю, а вообще - чтобы ввести вручную значение, которое не распознаёт сканер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2020, 17:29 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=40&tid=2038164]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
73ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 382ms |

| 0 / 0 |
