![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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, если конечно это можно сделать...