Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.11.2003, 13:13
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
У меня такая идея: При нажатом Ctrl+Left происходят некие действия, а при Ctrl+Right некие другие действия. При нажатии просто на Left или Right ничего не делается. Что-то не пойму как поймать событие Ctrl+Left при Form1.KeyPreview = true. Событие Form1.KeyPress при нажатии на Left или Right не возникает, а Form1.KeyDown при нажатом Ctrl (Shift, Alt) тоже не происходит. Как же тогда их отловить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.11.2003, 14:38
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
Что никто не сталкивался с такой проблемой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.11.2003, 14:59
|
|||
|---|---|---|---|
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.11.2003, 15:09
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
Именно так я и сделал. Проблема в том, что если при нажатом Shift нажимать Left, то событие KeyDown не наступает, а KeyPress предназначено только для печатаемых символов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.11.2003, 15:17
|
|||
|---|---|---|---|
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
Вот проверил на новом проекте и на KeyDown if ((key=vk_left) and (ssShift in Shift)) then label1.Visible:=not label1.Visible; работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.11.2003, 15:38
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
Дело в том что фокус находится на кнопке. Если брать форму без кнопок, то все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.11.2003, 17:38
|
|||
|---|---|---|---|
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
установи у формы KeyPreview:=true; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.11.2003, 09:57
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
Про KeyPreview я знаю. И установил его в true в самом начале: автор вопроса писал:Что-то не пойму как поймать событие Ctrl+Left при Form1.KeyPreview = true Специально создал новый проект для экспериментов (показываю текст модуля): Код: 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. 29. 30. 31. 32. Так вот если у Button1 TabStop стоит true, то ничего не работает. А если установить его в false, то сначала работает, а после нажатия на кнопку фокус устанавливается на нее и все крендец. Положил еще TEdit на форму. При фокусе в Edit1 все пашет. Что-то не пойму как победить данную траблу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.11.2003, 10:18
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
Delphi 6, если это имеет значение. to Lana А тигра на фотке настоящая? :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.11.2003, 11:52
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
попробуй назначить обработку на KeyUp, с KeyDown у меня тоже проблемы были. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.11.2003, 12:02
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
Да, на KeyUp все работает. Но я хотел в промежутке между KeyDown и KeyUp включать Timer... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.11.2003, 13:06
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
а если отлавливать WM_KEYDOWN ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.11.2003, 13:09
|
|||
|---|---|---|---|
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
Попробовал сделать тоже самое. На KeyDown не работает, а на KeyUp работает. Думаю стоит попробывать заменить TButton на SpeedButton. С SpeedButton-ом все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.11.2003, 14:50
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
to Nemec Приведи пожалуйста пример. а то я никогда так не делал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
13.11.2003, 17:38
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
объявляешь процедуру: procedure MyWMKeyDown(var Message: TWMKeyDown); message WM_KEYDOWN; ... procedure MyWMKeyDown(var Message: TWMKeyDown); begin (твои операторы) inherited; (или здесь) end; а вообще Delphi\Source\Vcl\ - неистощимый источник информации :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.11.2003, 15:20
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
Что-то ругается на директиву message . В uses я прописал Messages, но все равно ругается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.11.2003, 15:30
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
Объявить надо в классе формы. ----- Прежде чем сказать "Невозможно", подумай, прав ли ты?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.11.2003, 08:43
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
Или я такой тупой или вы мне что-то недоговорили... Вообще не заходит в процедуру MyWMKeyDown. Написал так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.11.2003, 08:50
|
|||
|---|---|---|---|
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.11.2003, 09:06
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
Была процедура написана перед private. Перенес в public - не помогло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.11.2003, 10:37
|
|||
|---|---|---|---|
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.11.2003, 10:43
|
|||
|---|---|---|---|
|
|||
Обработать Shift+Left, Ctrl+Left, Alt+Left |
|||
|
#18+
Теперь уже ничего не кричит. Просто в эту процедуру даже не заходит. Сделал точку останова на if (fl) and (Message.CharCode = vk_left) then - точно не заходит. Что-то я никак не врублюсь в чем дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&mobile=1&tid=2115888]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 258ms |
| total: | 415ms |

| 0 / 0 |
