Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];

Вниз

Как узнать о том, что в RichEdit был вставлен текст???   Найти похожие ветки 

 
MAxiMum   (2002-07-15 10:20) [0]

Как узнать о том, что в RichEdit был вставлен текст и, по возможности, изменить вставляемый текст. Похоже, что данного обработчика не существует, как не существует и сообщения, приходящего от Windows.


 
MAxiMum   (2002-07-15 13:29) [1]

Никто не знает???


 
Destroyer   (2002-07-15 13:35) [2]

Обрабатывай WM_PASTE


 
MAxiMum   (2002-07-15 14:06) [3]

WM_Paste, как я понял, служит для вставки в Edit или в ComboBox из буфера. Обработка не идет (по крайней мере для компонента или надо для формы???).


 
olookin   (2002-07-15 14:09) [4]

А нельзя ли ловить нажатие Ctrl-V (в обработчике OnKeyDown) и сначала запоминать текущее положение каретки, а затем положение после нажатия этой комбинации? И если разность оных не равна 0, то текст вставлен (и следователно, лекго может быть получен).


 
MAxiMum   (2002-07-15 14:12) [5]

Можно, а также можно еще учесть и Shift+Ins, но...
1) а если пользователь выберет из контексного меню пункт "Вставить"?
2) а, что если он по другому вставит ("попытается достать правой ногой левого уха")?
Не решение это? Помогите, а?


 
olookin   (2002-07-15 14:17) [6]

Если вставка идет из пункта меню, то ничего ловить не надо, просто каждый раз при нажатии на этот пункт надо:
1. Запоминать положение каретки
2. Получать новые положения
3. Выдирать кусок текста, ограниченный этими положениями.

Если вставка идет из буфера, то только с помощью Ctrl-V (по крайней мере, это стандарт). Дальше то же самое, что и выше.


 
Destroyer   (2002-07-15 14:59) [7]

Проверяй по OnChange у RichEdit SelLength, после вставки из буфера оно не должно быть нулевым....Вроде просто...


 
MAxiMum   (2002-07-15 18:01) [8]

Только вроде...
>olookin
Говорю же все не предусмотришь. А как без пункта меню???
>Destroyer
А если пользователь выделил текст и начал нажимать клавиши... Тоже SelLength сначала ненулевое и OnChange сработает.


 
Destroyer   (2002-07-16 06:25) [9]

"А если пользователь выделил текст и начал нажимать клавиши... Тоже SelLength сначала ненулевое и OnChange сработает."

Неправда...Событие OnChange происходит после того, как текст изменился, а если пользователь выделил текст и нажал клавишу, то выделенный им фрагмент текста удалится....и SelLength=0


 
MAxiMum   (2002-07-16 09:57) [10]

Я имел в виду, если он после выделения еще и начнет всякие кнопочки ненужные нажимать на клавиатуре.
Короче, я понял, ничего при этом не происходит, по человечески не получается. Буду обрабатывать Ctrl+V, Shift+Ins, а контекстное меню своим замещу (благо есть чем дополнить его).
p.s. Спасибо за советы :))


 
Парасенок   (2002-07-16 14:41) [11]

ЗАчем мучиться-то? Есть такая штучка TrichEdit.Modified.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.07.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.014 c
3-95235
User_OKA
2002-07-04 07:52
2002.07.29
Деревья SQL


1-95310
Romeo
2002-07-17 16:39
2002.07.29
Регистры SSE


4-95628
Andrew_A
2002-05-21 14:04
2002.07.29
Message from service to desktop window


3-95219
weak
2002-07-08 10:53
2002.07.29
Locate


3-95212
Гас
2002-07-08 09:49
2002.07.29
Простой и красивый способ распространения проги с базой под IB





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский