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

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

RichEdit & Paste [D6, Win95/98]


Sfagnum ©   (2003-10-15 16:08:00) 

Хочу запретить вставлять в RichEdit всё, кроме неформатированного текста, типа как в TMemo...
Можно ли как то это задать или опять ручками?
В RichEdit"е можно узнать какие форматы могут быть вставлены с помощью EM_CANPASTE...


Sfagnum   (2003-10-17 09:12:00) [1]

2 clickmaker
да нет работает... просто с MSDN"а содрано...

2 Doctor Deejay
>Есть еще момент - можно и мышкой вставить!
сорьки за глупый вопрос - это как? RClick + Paste?
я ещё не реализовал это... думаю проблем не должно быть...


Doctor Deejay   (2003-10-16 20:49:00) [2]

Проще:
На фоне создать ТМемо, а при нажатии на горячие клавиши вставлять его туда, а потом копировать в ричэдит.
Есть еще момент - можно и мышкой вставить!


clickmaker   (2003-10-16 18:08:00) [3]

> если кто видит где грабли поделитесь...

А что, не работает ?


Sfagnum   (2003-10-16 17:25:00) [4]

Вообщем кому интересно реализовал следущим образом на WM_KEYDOWN ловлю нажатия Shift+Insert & Ctrl+v.
и выполняю следующую процедурку:
procedure PasteText(wnd: hWnd);
var hglb: HGLOBAL;
lptst: PWideChar;
begin
if not IsClipboardFormatAvailable(CF_TEXT) then exit;
if not OpenClipBoard(0) then exit;
try
hglb := GetClipboardData(CF_TEXT);
if hglb = 0 then exit;
lptst := GlobalLock(hglb);
if lptst = nil then exit;
SendMessage(wnd,EM_REPLACESEL,0,LongInt(lptst));
GlobalUnlock(hglb);
finally
CloseClipBoard;
end;
end;


если кто видит где грабли поделитесь...


Sfagnum   (2003-10-16 13:05:00) [5]

Если это не возможно то может кто подскажет как перехватить WM_PASTE или EM_PASTESPECIAL, если конечно это можно сделать...


Наверх

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