Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Плохо ловится WM_DRAWCLIPBOARD ричедитом   Найти похожие ветки 

 
TStas   (2012-05-21 17:05) [0]

Ловлю так, как в книжке написано:
procedure TStCodeEditor.WMDrawClipboard(var Msg: TWMDrawClipboard);
begin
 SendMessage(FClipBoardOwner, WM_DRAWCLIPBOARD, 0, 0);
 Msg.Result := 0;
 ShowMessage("WM_DRAWCLIPBOARD");
 ClipBoardChanged;
end;

Ещё ловятся сообщения
EM_STREAMIN;
WM_PAINT;
WM_RBUTTONUP;
WM_RBUTTONDOWN;
WM_DRAWCLIPBOARD;
EM_SETREADONLY;
CN_KEYDOWN;
CN_KEYUP;
WM_PASTE;
WM_SETTEXT;
WM_MOUSEMOVE;
Наблюдателя создаю в конструкторе. Раньше всё было нормально. А теперь установил компонент в среду, исправил косяки и сдуру стёр все старые варианты. Сообщения, перечисленные выше, и раньше ловились.
В принципе, один раз сообщение ловится, но когда я начинаю в буфер копировать не текст, например, файлы, то об этом сообщение не доходит. Специально на форму положил EDit, чтобы с ним сравнивать. С эдитов всё нормально. Он делает недоступной вставку, когда в буфере не текст, а мой не делает. :(
Главное, непонятно где искать косяк. Просмотрел всю родословную до TControl, никто из них не отлавливает WM_DRAWCLIPBOARD. Но EDit ведь знает об изменении содержимого буфера.
С какой хоть стороны косяк искать?


 
TStas   (2012-05-21 19:33) [1]

Оказалось, надо CreateWnd перекрывать. Ведь когда она вызывается, меняется Handle, соответсвенно, наблюдатале уведомляет по недействительному дискриптору. :) Сам додумался:)
Вопрос снят. Не знаю, правильно ли я сделал, что написал? А то такая странная ветка получается: "Тихо сам с собою я веду беседу". :)


 
Давайте будем жрать!   (2012-05-21 21:57) [2]


> Не знаю, правильно ли я сделал, что написал?
Вполне правильно.



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

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.048 c
2-1329811084
leklerk
2012-02-21 11:58
2013.03.22
Изменение данных в БД через DBGrid


1-1295644073
Wadimka
2011-01-22 00:07
2013.03.22
Конвертация даты в миллисекундах в TDateTime


4-1259685169
S-C-L
2009-12-01 19:32
2013.03.22
Как программно создать EXE


15-1353500246
ЕщеОдинКакжеНадоели
2012-11-21 16:17
2013.03.22
Документация к программе.


15-1339590107
Хригорий
2012-06-13 16:21
2013.03.22
Что такое нативный язык программирования?