![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 2 Всего: 12 |
В Edit текст можно в водить при помощи клавиатуры, через буфер обмена, и программно Edit.Text:='d';
Вопрос: как определить каким из способов в водится текст в Edit??? |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 4 Всего: 260 |
насколько мне известно, в этом случае не генерятся сообщения WM_KEYUP, WM_KEYDOWN потому события TEDit onkeypress, onkeydown, onkeyup для каждого символа не генерируется. только для самой комбинации CTRL+V/Shift+Insert, если вставка из буфера была вызвана при помощи клавиатуры если тебе надо различать - забабахай свой класс-компонент, у которого реакция на буфер обмена(сообщение WM_PASTE), изменения свойства text(на уровне процедуры-setter'a) и "ручной набор"(сообщение WM_KEYDOWN/WM_KEYUP) будут вызывать разные события. Добавлено @ 16:01 а зачем это всё? |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
ivan219, сделать перехват сообщений окна. WM_PASTE, WM_KEYUP, WM_SETTEXT, WM_SYSKEYUP, WM_SYSKEYDOWN, WM_SYSCOMMAND... вообще всяких методов много.
Или нужно определять только для себя, т.е. для тех методов, которыми сам пользуешся? -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 2 Всего: 12 |
Суть в том что в вод текста с клаввиатуры и через буфер должны обрабатыватся в отдельной процедуре а потом выводится в Edit, программный т.е. Edit.Text:=''; не должен обрабатыватся этой процедурой.
Alexeis, можеш расписать эти сообщения WM_PASTE, WM_SETTEXT, WM_SYSKEYUP, WM_SYSKEYDOWN, WM_SYSCOMMAND |
|||
|
||||
| Alexeis |
|
||||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
WM_PASTE - событие вставки из буфера обмена
WM_SETTEXT - установка стандартного текста окну. (вроде это событие возникает при присваивании) WM_SYSKEYUP, WM_SYSKEYDOWN
WM_SYSCOMMAND - вообще передает кучу служебных событий, оно полезно для перехвата управляющих сообщений. Вот полный список того что оно делает
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
| ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 2 Всего: 12 |
Alexeis, спасибо.
|
|||
|
||||
| ivan219 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1121 Регистрация: 19.11.2005 Где: Планета земля Репутация: 2 Всего: 12 |
Всё вопрос решон
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |