![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать о том, что в RichEdit был вставлен текст??? [D6, Win95/98, Win2k]
MAxiMum © (2002-07-15 10:20:00)Как узнать о том, что в RichEdit был вставлен текст и, по возможности, изменить вставляемый текст. Похоже, что данного обработчика не существует, как не существует и сообщения, приходящего от Windows.
Парасенок (2002-07-16 14:41:00) [1]ЗАчем мучиться-то? Есть такая штучка TrichEdit.Modified.
MAxiMum (2002-07-16 09:57:00) [2]Я имел в виду, если он после выделения еще и начнет всякие кнопочки ненужные нажимать на клавиатуре.
Короче, я понял, ничего при этом не происходит, по человечески не получается. Буду обрабатывать Ctrl+V, Shift+Ins, а контекстное меню своим замещу (благо есть чем дополнить его).
p.s. Спасибо за советы :))
Destroyer (2002-07-16 06:25:00) [3]"А если пользователь выделил текст и начал нажимать клавиши... Тоже SelLength сначала ненулевое и OnChange сработает."
Неправда...Событие OnChange происходит после того, как текст изменился, а если пользователь выделил текст и нажал клавишу, то выделенный им фрагмент текста удалится....и SelLength=0
MAxiMum (2002-07-15 18:01:00) [4]Только вроде...
>olookin
Говорю же все не предусмотришь. А как без пункта меню???
>Destroyer
А если пользователь выделил текст и начал нажимать клавиши... Тоже SelLength сначала ненулевое и OnChange сработает.
Destroyer (2002-07-15 14:59:00) [5]Проверяй по OnChange у RichEdit SelLength, после вставки из буфера оно не должно быть нулевым....Вроде просто...
olookin (2002-07-15 14:17:00) [6]Если вставка идет из пункта меню, то ничего ловить не надо, просто каждый раз при нажатии на этот пункт надо:
1. Запоминать положение каретки
2. Получать новые положения
3. Выдирать кусок текста, ограниченный этими положениями.
Если вставка идет из буфера, то только с помощью Ctrl-V (по крайней мере, это стандарт). Дальше то же самое, что и выше.
MAxiMum (2002-07-15 14:12:00) [7]Можно, а также можно еще учесть и Shift+Ins, но...
1) а если пользователь выберет из контексного меню пункт "Вставить"?
2) а, что если он по другому вставит ("попытается достать правой ногой левого уха")?
Не решение это? Помогите, а?
olookin (2002-07-15 14:09:00) [8]А нельзя ли ловить нажатие Ctrl-V (в обработчике OnKeyDown) и сначала запоминать текущее положение каретки, а затем положение после нажатия этой комбинации? И если разность оных не равна 0, то текст вставлен (и следователно, лекго может быть получен).
MAxiMum (2002-07-15 14:06:00) [9]WM_Paste, как я понял, служит для вставки в Edit или в ComboBox из буфера. Обработка не идет (по крайней мере для компонента или надо для формы???).
Destroyer (2002-07-15 13:35:00) [10]Обрабатывай WM_PASTE
MAxiMum (2002-07-15 13:29:00) [11]Никто не знает???