Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обработка удаления в RichEdit'e [D5, Win2k]


net_daemon ©   (2005-06-30 16:00:00) 

День добрый, уважаемые Мастера!
Вопрос, как я понимаю, вобщем-то не сложный, но за рабочий день решение в голову так и не пришло...
Есть RichEdit, в котором обрабатывается служебная информация (другими компонентами, вроде SynEdit'a решил не пользоваться - вроде пока должно хватить Рича).
Но вот вопрос - необходимо обработать нажатие backspace'a так, чтобы удалался не отдельный символ, стоящий перед ним, а, скажем, целое слово...Понимаю, что надо обрабатывать

RichEdit_KeyDown

и смотреть, если Key=VK_BACK,то -... ? А вот тут и встаю.
Откуда мне считывать символ, стоящий ДО курсора?
Далее, понятно - двигаюсь в обратную сторону до тех пор, пока не встречаю пробел, потом SelText и т.д. Но вот откуда взять символ, стоящий до курсора...
Заранее благодарен


net_daemon   (2005-06-30 18:08:00) [1]

Спасибо!

Ковырялся, и пока нашел только такое решение:

var
 CurrentPos, DelWordLength: integer;
...
 CurrentPos:=RichEdit.SelStart;
 with RichEdit do
     begin
         SelStart:=CurrentPos - DelWordLength;
         SelLngth:=DelWordLength;
         CutToClipboard;
     end;
...

И больше, пока, никаких методов удаления выделенного текста, кроме как в буфер обмена не нашел.
Реализовано так специально, или есть безвозвратные методы удаления?
Спасибо


ANB   (2005-06-30 16:03:00) [2]

RichEdit.SelStart и все, что начинается на Sel


Наверх

Титульная страница Поиск, карта сайта Написать письмо