С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
16 / 16 / 3
Регистрация: 01.03.2013
Сообщений: 130
1

задать множество клавиш OnKeyPress

23.03.2013, 10:43. Показов 1623. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
в общем необходимо чтобы можно было нажать только цифры, Backscape, Delete и некоторые сочетания вроде Ctrl+c, Ctrl+v,
с клавишами я разобрался, а вот как добавить сочетания не знаю
if not (Key in ['0'..'9', #8, #46]) then Key:= #0; вот так я избавляюсь от всего кроме нужных клавиш, надо добавить сочетания Ctrl+c, Ctrl+v
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.03.2013, 10:43
Ответы с готовыми решениями:

Как задать множество
Помогите пожалуйста, как задать множество букв алфавита ,которые будут идти через одну? Только...

Задать множество А случайным образом из k элементов из диапазона [0, m] (повторяющиеся элементы удалить)
Задать множество А случайным образом из k элементов, каждый из элементов взять из диапазона ...

Задать множество А случайным образом из k элементов из диапазона [0, m] (повторяющиеся элементы удалить)
Задать множество А случайным образом из k элементов, каждый из элементов взять из диапазона ...

Задать множество, элементы которого - случайные числа из некоторого диапазона целых чисел; распечатать множество
Помогите, пожалуйста, решить задачу. Задать множество, элементы которого - случайные числа из...

3
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
23.03.2013, 14:49 2
Цитата Сообщение от GetMeHelp Посмотреть сообщение
а вот как добавить сочетания не знаю
А их не надо "добавлять".
И Delete тоже не надо.
Нажатие этих спецклавиш и спецкомбинаций обрабатывается независимо от OnKeyPress и в обработчик этого события вообще не попадают.
0
16 / 16 / 3
Регистрация: 01.03.2013
Сообщений: 130
23.03.2013, 15:54  [ТС] 3
Цитата Сообщение от mss Посмотреть сообщение
А их не надо "добавлять".
И Delete тоже не надо.
Нажатие этих спецклавиш и спецкомбинаций обрабатывается независимо от OnKeyPress и в обработчик этого события вообще не попадают.
да ты что... вот только у меня они почему то не работают... и да, мой код блокирует все что не входит в множество, в том числе и спец комбинации... можешь проверить. Именно поэтому то и нужно как то включить эти комбинации в множество допустимых клавиш
0
13107 / 5888 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
23.03.2013, 17:37 4
GetMeHelp, используй событие OnKeyDown.
Delphi
1
2
3
4
5
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 
end;
Через параметр Key передаётся виртуальный код нажатой клавиши.
Список виртуальных кодов (неполный, из справки Delphi 7)
Код
Virtual Key Code	Corresponding key

VK_LBUTTON	Left mouse button
VK_RBUTTON	Right mouse button
VK_CANCEL	Control+Break
VK_MBUTTON	Middle mouse button
VK_BACK	Backspace key
VK_TAB	Tab key
VK_CLEAR	Clear key
VK_RETURN	Enter key
VK_SHIFT	Shift key
VK_CONTROL	Ctrl key
VK_MENU	Alt key
VK_PAUSE	Pause key
VK_CAPITAL	Caps Lock key
VK_KANA	Used with IME
VK_HANGUL	Used with IME
VK_JUNJA	Used with IME
VK_FINAL	Used with IME
VK_HANJA	Used with IME
VK_KANJI	Used with IME
VK_CONVERT	Used with IME

VK_NONCONVERT	Used with IME
VK_ACCEPT	Used with IME
VK_MODECHANGE	Used with IME
VK_ESCAPE	Esc key
VK_SPACE	Space bar
VK_PRIOR	Page Up key
VK_NEXT	Page Down key
VK_END	End key
VK_HOME	Home key
VK_LEFT	Left Arrow key
VK_UP	Up Arrow key
VK_RIGHT	Right Arrow key
VK_DOWN	Down Arrow key
VK_SELECT	Select key
VK_PRINT	Print key (keyboard-specific)
VK_EXECUTE	Execute key
VK_SNAPSHOT	Print Screen key
VK_INSERT	Insert key
VK_DELETE	Delete key
VK_HELP	Help key

VK_LWIN	Left Windows key (Microsoft keyboard)
VK_RWIN	Right Windows key (Microsoft keyboard)
VK_APPS	Applications key (Microsoft keyboard)
VK_NUMPAD0	0 key (numeric keypad)
VK_NUMPAD1	1 key (numeric keypad)
VK_NUMPAD2	2 key (numeric keypad)
VK_NUMPAD3	3 key (numeric keypad)
VK_NUMPAD4	4 key (numeric keypad)
VK_NUMPAD5	5 key (numeric keypad)
VK_NUMPAD6	6 key (numeric keypad)
VK_NUMPAD7	7 key (numeric keypad)
VK_NUMPAD8	8 key (numeric keypad)
VK_NUMPAD9	9 key (numeric keypad)

VK_MULTIPLY	Multiply key (numeric keypad)
VK_ADD	Add key (numeric keypad)
VK_SEPARATOR	Separator key (numeric keypad)
VK_SUBTRACT	Subtract key (numeric keypad)
VK_DECIMAL	Decimal key (numeric keypad)
VK_DIVIDE	Divide key (numeric keypad)
VK_F1	F1 key
VK_F2	F2 key
VK_F3	F3 key
VK_F4	F4 key
VK_F5	F5 key
VK_F6	F6 key
VK_F7	F7 key
VK_F8	F8 key
VK_F9	F9 key
VK_F10	F10 key
VK_F11	F11 key
VK_F12	F12 key
VK_F13	F13 key
VK_F14	F14 key
VK_F15	F15 key

VK_F16	F16 key
VK_F17	F17 key
VK_F18	F18 key
VK_F19	F19 key
VK_F20	F20 key
VK_F21	F21 key
VK_F22	F22 key
VK_F23	F23 key
VK_F24	F24 key
VK_NUMLOCK	Num Lock key
VK_SCROLL	Scroll Lock key
VK_LSHIFT	Left Shift key (only used with GetAsyncKeyState and GetKeyState)
VK_RSHIFT	Right Shift key (only used with GetAsyncKeyState and GetKeyState)
VK_LCONTROL	Left Ctrl key (only used with GetAsyncKeyState and GetKeyState)
VK_RCONTROL	Right Ctrl key (only used with GetAsyncKeyState and GetKeyState)

VK_LMENU	Left Alt key (only used with GetAsyncKeyState and GetKeyState)
VK_RMENU	Right Alt key (only used with GetAsyncKeyState and GetKeyState)
VK_PROCESSKEY	Process key
VK_ATTN	Attn key
VK_CRSEL	CrSel key
VK_EXSEL	ExSel key
VK_EREOF	Erase EOF key
VK_PLAY	Play key
VK_ZOOM	Zoom key
VK_NONAME	Reserved for future use
VK_PA1	PA1 key
VK_OEM_CLEAR	Clear key

MSDN: Полный список виртуальных кодов в Windows 2000.
Через параметр Shift передаётся состояние некоторых клавиш и кнопок мыши:
Delphi
1
2
TShiftState = set of (ssShift, ssAlt, ssCtrl,
    ssLeft, ssRight, ssMiddle, ssDouble);
Где:
Код
Value	Meaning

ssShift	The Shift key is held down.
ssAlt	The Alt key is held down.
ssCtrl	The Ctrl key is held down.
ssLeft	The left mouse button is held down.
ssRight	The right mouse button is held down.
ssMiddle	The middle mouse button is held down.
ssDouble	The mouse was double-clicked.
0
23.03.2013, 17:37
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.03.2013, 17:37
Помогаю со студенческими работами здесь

Задать множество
Задача: Треугольник на плоскости XOY задаётся системой неравенств: x\geq 0,\ y\geq 0,\ x+y\leq 1....

Задать множество общим свойством
Пример решил, но не уверен что правильно. Если есть ошибки, прошу указать

Приведенное множество задать перечнем элементов
Помогите решить: A= x|x \epsilon R; (x-4)^2(x^2+x-1)=0

Задать множество через определяющее свойство
Задать множество через определяющее свойство: А={1,4,9,16,25,...}


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru