Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Как изменить психологию пользователя?  [new]
Muric
Member

Откуда:
Сообщений: 39
Доброе утро!
Недавно в форуме я задавал вопрос о горячих клавишах. Идея заключается в том, чтобы не сильно меняя прежний стиль их работы (пользователи работают под DOS, где широко используются горячие клавиши для быстрого ввода данных) плавно перейти к программе под WIN, где основной упор ставится на мышь. Как это сделать? Эта часть вопроса скорее риторическая. А теперь вопрос по-существу: попробовал я в форме назначить горячие клавиши, например, на "INSERT" добавление новой записи, а так именно, было в старой программе, но при нажатии на "INSERT" у меня включается функция этой клавиши т.е. замена символов. Назначаю например, на "F4", а у меня в форме, при добавлении записи устанавливается фокус на объект COMBO, то там происходит резкое мелькание в цикле. На клавишу "ENTER", вообще нецелесообразно назначать, т.к. по ней происходит перемещение по объектам в форме. Тогда как быть? Если кто поделится свои мнением и советом буду очень рад. Спасибо!
19 фев 04, 11:09    [542807]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
Crip
Member

Откуда:
Сообщений: 2490
Как ранее правильно заметил Вячеслав Клепинин вся обработка от клавиатуры при KeyPreview = .T. ведется через KeyPress формы...
Стандартным для программ Windows является возможность любое действие выполнить двумя способами - мышью и клавиатурой.
Системные клавиши, такие как F4 , F10 лучше оставить в покое , а остальные вполне можно задействовать. Упор можно сделать на CTRL+Буква. Insert в качестве добавления новой строки рекомендую оставить - удобно и привычно.
19 фев 04, 11:21    [542841]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
FM32YO aka KID
Member

Откуда: Ukraine
Сообщений: 884
таким метом вроде работет...

keypress

do case
case nKeyCode=27


thisform.release()

case nKeyCode=22 && Insert

select no_date
goto bottom
scatter memvar blank
*m.number=no_date.number+1
m.date=DATE()

do form &start_path\forms\new_nakl.scx
thisform.refresh()
endcase
19 фев 04, 11:24    [542843]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
Мое мнение будет весьма категоричным: мышь в приложениях БД - это устройство от лукавого. Особенно если приложение - OLTP.
Горячие клавиши, безусловно, нужны. Причем самым лучшим способом назначить их я считаю прописывание таких клавиш в sysmenu. Потому что тогда и мышь становится можно использовать автоматически ;-)
Второй способ, который, в идеале, не заменяет, а только дополнянет первый, - создание класса, базового для форм редактирования, где на метод keypress формы назначено выполнение определенных действий на форме, созданной на основе этого класса.

Ну а чтобы нажатие на горячую кнопку в случае с keypress не запускало отработку действия по умолчанию, при перехвате так и нужно писать: nodefault ;-)
19 фев 04, 11:28    [542849]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
Crip
Member

Откуда:
Сообщений: 2490
Почитайте лучше поэтому поводу посты Владимира Максимова.

Мое мнение будет весьма категоричным: мышь в приложениях БД - это устройство от лукавого. Особенно если приложение - OLTP.
В частности он отмечает, что на самом деле при грамотной организации приложения скорость работы мышью и клавиатурой приблизительно одинаково...Все дело в привычке...
19 фев 04, 11:34    [542857]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
Hel!Riser
Member

Откуда: Нижний Новгород
Сообщений: 972
как вариатн пользования горячих клавиш - это поздание менюшек, пристыковывающихся к системному с назначенными именно в ней горячих клав на определ:енных пунктах.
19 фев 04, 11:37    [542862]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
Crip
Member

Откуда:
Сообщений: 2490
Urri тоже самое предложил только ИМХО это не очень удобное решение при MDI интерфейсе...
19 фев 04, 11:43    [542878]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
Hel!Riser
Member

Откуда: Нижний Новгород
Сообщений: 972
а у мя ответ висел неотправленым :) к тому же ессно фс:е это стилизация. И пользуясь граф пакетами лична я даже убираю менюшки, чтоб увеличить экран и гоняю клавы, а не мышь
19 фев 04, 11:52    [542897]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
2Crip

Ну почему же неудобно: представьте, что в каждой форме есть хорошо проработанный и достаточный стандартный набор методов, связанных с меню. Меню дергает метод активной формы, а действие - со своими характерными для этой формы нюансами - прописано уже в самой форме.
Те методы, которые специфичны только для текущей формы, вынесены в отдельный menu pad (например, с именем "Сервис"), который добавляется к меню только в то время, когда пользователь работает с этой формой. Как правило, специфичные действия могут и не иметь горячих клавиш, но можно определить дополнительное соглашение между разработчиками (например, задействовать для меню со спецификой формы комбинации Alt+1...Alt+9 и Alt+0).

Насчет того, что с мышью тоже можно очень толково организовать работу - охотно верю, но по скорости набора данных равных клавиатуре все же нет. OLTP - это прежде всего ввод в поля. Он идет с клавиатуры. Причем, обычно, двумя руками. Заставлять пользователя тянуться за мышью каждый раз, когда требуется выполнить что-то, не укладывающееся во ввод данных и переход между контролами формы, как-то не по мне. ;-)
19 фев 04, 12:04    [542928]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
Crip
Member

Откуда:
Сообщений: 2490
Получается что в Activate/DeActivate надо прописывать удаление/создание меню... Как-то не очень хочется в Activate вообще что-то серьезное делать...
19 фев 04, 12:08    [542946]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
Urri
Member

Откуда: Москва
Сообщений: 2693
2Crip
Только одного pad'а меню. Но - не забывать! Впрочем, все это довольно хорошо пишется в классах.
19 фев 04, 12:19    [542979]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
Crip
Member

Откуда:
Сообщений: 2490
2Urri
Все это очевидно , но мне интуитивно не нравится :)
19 фев 04, 14:00    [543345]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
Hel!Riser
Member

Откуда: Нижний Новгород
Сообщений: 972
а по сабжу выход один - не можешь справица с Вынем и новым интерфейсом - иди на улицу метлой мети. Фсе бабцы сразу будут шарить тока шл:Ем держи! И картриджи тонером заправлять и ваще!
19 фев 04, 14:06    [543376]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
Crip
Member

Откуда:
Сообщений: 2490
2Hel!Riser
Ты жесток :) Пользователей, а особенно пользовательниц нужно любить :) Хотя сильно баловать их тоже не стоит...
19 фев 04, 14:16    [543410]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
Hel!Riser
Member

Откуда: Нижний Новгород
Сообщений: 972
2 Crip
дык обычна бояца-то старп:еры ;) а молодые мадамы грамотна справляюца с любой кнопкой ;)))
19 фев 04, 14:18    [543421]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
Вячеслав Клепинин
Member

Откуда: Санкт-Петербург
Сообщений: 336
При работе с "горячими клавишами" в KeyPress формы нужно использовать коды клавиш (например, 13 вместо Enter или -5 вместо F6), как это совершенно справедливо отметил FM32YO (3), а не мнемонику. Если сильно хочется делать как Fox2, то можно просто создать INCLUDE-файл, где через #DEFINE назначить соответствие мнемоники коду. Про подключение такого файла к форме см. раздел #DEFINE ... #UNDEF Preprocessor Directive в FoxHelp.
Привязка "горячих клавиш" к меню (как можно догадаться по ответу Hel!Riser), не всегда целесообразна, так как, во первых, это распространяется на всё приложение (если, конечно, постоянно не чистить PAD'ы), а во-вторых, при работе модальной формы выпадающие меню недоступны, и привязанные к ним клавиши не работают.
И последнее. Не нужно превращать обсуждение в трёп.
19 фев 04, 14:44    [543495]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить психологию пользователя?  [new]
Hel!Riser
Member

Откуда: Нижний Новгород
Сообщений: 972
забыл описАть, что бывают случаи, когда скан-коды в разных сочетаниях клав софпадают...объять необъятное невозможна, мил чел ;)
Вячеслав Клепинин
И последнее. Не нужно превращать обсуждение в трёп.

я тя умоляяяю
19 фев 04, 14:58    [543536]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить