|
Победить DDDW
|
|||
---|---|---|---|
#18+
DDDW конечно приятная штука, но ведет себя он абсолютно автономно от самого DataWindow, хотелось бы узнать насчет способов обхода его основного "неприятного" момента - навигации и выбора значения из списка: 1. Можно ли во первых перехватывать нажатия кнопок в тот момент, когда активна колонка с типом DDDW ? Событие pbm_dwnkey к большому сожалению на ней не срабатывает, событие other может и срабатывает, но даже подумать страшно, чтобы через него все перехватывать. 2. Конечно радует, что для колонки DDDW с выставленным свойством "Allow Editiong" у DataWindow срабатывает событие EditChanged, уже есть шанс что то подправить, но все равно - почему если набирать текст без соблюдения регистра, то DW ругается - типа нет такого текста в предложенном списке. Тут или я где то чего то не понял и не поставил, или же у них приведение регистра в данном случае на кириллицу не действует. Да - еще вопросик. Никто не подскажет, как перехватывать в DW нажатия на клавиатуре "нестандартных" клавиш - например тех, у которых код больше 127 ? :) Или же как конвертить тип KeyCode, чтобы из события pbm_dwnkey вытащить код такой нажатой клавиши ? P.S. Помощь можно не цитировать, я ее вроде как всю по данным вопросам проштурмовал, лучше своими словами :) На вопрос - зачем оно мне это надо отвечаю сразу - не привыкли российские пользователи в гридах Tab-ом двигаться, каюсь - я и сам постоянно норовлю на DDDW колонке нажать стрелку вверх/вниз. Естественно ничего хорошего из этого не получается. Отказываться от DDDW не хочется. Так что жду и надеюсь на подсказку форума. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2003, 01:52 |
|
Победить DDDW
|
|||
---|---|---|---|
#18+
Посмотрите библиотеку. http://oviont.com/detail.php?sid=27&id=19 Если не ошибаюсь там есть что-то для решения вашей проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2003, 08:18 |
|
Победить DDDW
|
|||
---|---|---|---|
#18+
Если честно, я бы не стал использовать библиотеку, на которую дал ссылку Ermak - она очень тяжеловесная, а DLL, который обеспечивает обработку стрелки вверх/вниз и т.п, при этом ломает ряд стандартных фич...\r И вообще, борьба со стандартной обработкой keyboard inputа всегда наказывается беспощадно :-)), стрелки вверх/вниз в DDDW (да и в стандартном combobox) сделаны для перебора значений в нём, а НЕ для навигации по многорядному дисплею.\r То как это обходить, обсуждалось тут, в топике под названием Передвижение стрелками по DW Free form :-)), просто мессаджи другие слать надо если хочешь чтобы ряд менялся...\r /topic/48622\r Можно, к примеру проделать следующее:\r Промапить pbm_command, там написать\r Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Но тут возникнет следующая поблема - если жмёшь стрелку вниз , а DDDW на последнем ряду (или вверх, а он на первом), то никаких notifications не будет, он просто сожрёт keystroke. Чтобы побороть это, нужно хукать и т.п., что есть АБСОЛЮТНО не оправданные усилия, с учётом того, что они будут потрачены на ломку стандартной обработки keystrokes.\r \r \r ASCRUS писал:для колонки DDDW с выставленным свойством "Allow Editiong" у DataWindow срабатывает событие EditChanged, уже есть шанс что то подправить, но все равно - почему если набирать текст без соблюдения регистра, то DW ругается - типа нет такого текста в предложенном списке\r Правильно ругается - reverse lookup в DDDW case sensitive (поэтому и display values должны быть уникальными). Чтобы не ругалось, нужно самому кое-что доделать. Для PFC есть даже расширение для их n_cst_dwsrv_dropdownsearch, смотри тут http://www.pfcguide.com/extensions/ext_0003.asp ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2003, 21:01 |
|
Победить DDDW
|
|||
---|---|---|---|
#18+
Большое спасибо всем за ответы. Пожалуй для меня самое правильное будет в случае с DDDW без надобности не пользоваться им в гридах, изменив стратегию построения интерфейса клиентского приложения. Если это так оказывается сложно, то лучше пойти в обход, увводя ввод навороченных данных с гридов на FreeForm :) А n_cst_dwsrv_dropdownsearch обязательно посмотрю. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2003, 23:13 |
|
Победить DDDW
|
|||
---|---|---|---|
#18+
http://oviont.com/detail.php?sid=66&id=55 Филиппу. Насчет тяжеловесности - согласен. Правда, можно выдрать с кровью. А вот ломка фичей - расскажите, каких? Исправлю. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2003, 18:25 |
|
Победить DDDW
|
|||
---|---|---|---|
#18+
Антон, я же вам уже говорил, лень опять возиться... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2003, 18:28 |
|
Победить DDDW
|
|||
---|---|---|---|
#18+
Филипп, нашел "ряд стандартных фич" с форума на Sybase.ru: "Твой DLL ломает стандартное поведение dddw - пользователь не может выбрать значение из dropdownlist (когда лист показан) с помощью клавиатуры." Это не так. Даже когда лист показан, хождение по записям dddw осуществляется с помощью Ctrl-стрелок вверх и вниз. ItemChanged тоже происходит. Переход на следующее поле ввода - Enter или Tab. Но даже это всегда можно отключить, вернув в скрипте переопределения клавиш 0.(Process default). Может, еще чего?... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2003, 13:28 |
|
Победить DDDW
|
|||
---|---|---|---|
#18+
Хождение по записям dddw осуществляется с помощью Ctrl -стрелок вверх и вниз, это и есть ломает стандартное поведение dddw ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2003, 21:01 |
|
|
start [/forum/topic.php?fid=15&fpage=111&tid=1339391]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
2ms |
others: | 229ms |
total: | 396ms |
0 / 0 |