

Андрей260276 писал(а):Подскажите, что не так...

Andrey Fedorov писал(а):Не так - это то что ты пытаешься следовать стилю DOS.

alibek писал(а):Andrey Fedorov писал(а):Не так - это то что ты пытаешься следовать стилю DOS.
Не надо клеветы
Это не стиль DOS, это стиль FoxPro и Clipper.

Nicky писал(а):Нажатия лови на форме (KeyPreview = True), иначе придется в каждом контроле обрабатывать


Konst_One писал(а):гиблое это дело: делать переход между контролами по ENTER, поверь
будет куча у тебя проблем, имхо

Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
KeyAscii = 0
SendKeys "{TAB}", True
End If
End Sub


S397 писал(а):Не верите, возьмите двух операторов и секундомер и замерьте, что быстрее вводить инфу только используя алфавитно-цифровую клавиатуру и Enter или TAB, а потом спросите у них еще как удобней.

alibek писал(а):Посади рядом с ними третьего оператора, который будет вводить информацию не вручную, а штрих-сканером или обычным сканером, и спроси у него, как удобней.

Nicky писал(а):К примеру, сидит оператор целый день набивает цифры (суммы, номера договоров и т.д.). И вполне логично, что делает он это на цифровой клавиатуре и переходит по Enter'у там же

Какой смысл большую кучу однообразных данных вручную, когда это можно автоматизировать?




Konst_One писал(а):я пишу банковский софт: нет там никакого перехода по ENTER, только по TAB



alibek писал(а):Вот потому матричные принтеры практически нигде, кроме банков, и не используются(я знаю, почему там матричные принтеры используются)
Надо не программы адаптировать к старым методам, надо методы и людей адаптировать к новым технологиям.
Private Sub txtField_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case 13
If txtField(Index).Text = "" Then
KeyCode = 0
SendKeys "{TAB}"
Else
If txtField(Index).SelStart = 0 And txtField(Index).SelLength = Len(txtField(Index).Text) Then
KeyCode = 0
SendKeys "{TAB}"
ElseIf txtField(Index).SelStart = Len(txtField(Index).Text) Then
KeyCode = 0
SendKeys "{TAB}"
Else
txtField(Index).SelStart = 0
txtField(Index).SelLength = Len(txtField(Index).Text)
End If
End If
....

Andrey Fedorov писал(а):В Windows по Enter-у должен осуществляться ввод/сохранение всех полей на форме, а для перехода между полями есть клавиша Tab.

blinow писал(а):Это повидимому Вы и придумали при оплате в Сбербанке писать на бумажонке длиннущие коды вида платежа и старушка матерясь пытается оплатить рублевую госпошлину выписывая 20, 30 цифр какой-то абракадабры и тут-же появились ушлые рябята предлагающие за 10р заполнить бумажонку или же сам банк с невинной рожей предлагает тоже самое. Наверно было проще написать "Госпошлина" и все, а оператор там, сам или программно ставит какие хошь коды.


Про отлавливание на форме, конечно проще, но если форма тяжеленная и завалена разнотипными контролами, гридами и прочей дрянью

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 12