Форум "Delphi" (архив)
Паскаль, Делфи
#0 Go © 20.03.06 17:24:41 - 20.03.06 18:32:01 буфера как можно словить событие, если чегото в буфер кладут!? :)
|
|
Гм.... ну.... в буффер можно положить много чего... Прикладная программа посылает сообщение WM_COPY окнам редактирования или комбинированному блоку, чтобы копировать текущий выбор в буфер обмена в формате CF_TEXT. Синтаксис WM_COPY wParam = 0; // не используется, должно быть ноль lParam = 0; // не используется, должно быть ноль Параметры У этого сообщения нет параметров. Возвращаемые значения Это сообщение не возвращает значений. Замечания Когда сообщение WM_COPY посылается комбинированному блоку, оно обрабатывается его средствами редактирования. Это сообщение не оказывает никакого влияния, когда послано комбинированному блоку со стилем CBS_DROPDOWNLIST. Смотри также WM_CLEAR, WM_CUT, WM_PASTE |
|
#2 Go © 20.03.06 17:40:43
1. а если не CF_TEXT !? 2. а если не использовать Application.OnMessage !? |
|
> а если не CF_TEXT !? тебе важен сам факт вставки или нужна последующая обработка? > а если не использовать Application.OnMessage !? ну... тогда примерно так.... TForm1 = class(TForm) private { Private declarations } procedure WMCopy(var a:TWMCopy); message WM_COPY; public { Public declarations } end; |
|
#4 Mystic © 20.03.06 18:06:37
Как я понял, важен тот факт, что содержимое Clipboard изменилось, так? |
|
#5 Go © 20.03.06 18:07:01
тебе важен сам факт вставки да, сам момент добавления в буфер :) ну... тогда примерно так.... мне нужно ловить не_на_форме.. а на контролсах которые там живут :) дописывать контролсы - не подходит :) |
|
#6 Go © 20.03.06 18:07:35
#4 Mystic © 20.03.06 21:06:37 допустим :) |
|
> мне нужно ловить не_на_форме.. а на контролсах которые там > живут :) Дык, ловить можно на форме, а поймав определить хендл активного окна... (GetForegroundWindow, GetActiveWindow) По хендлу можно найти компоненту (искать среди наследников TWinContorl). Длинновато, но по идее должно работать. P.S. Еще можно покопать в сторону других событий типа WM_CHANGECBCHAIN, WM_DRAWCLIPBOARD, ... |
|
#8 Go © 20.03.06 18:24:58
#7 Deep © 20.03.06 21:18:33 хм.. а с чего это форма будет ловить не свои сообщения !? |
|
#9 Mystic © 20.03.06 18:25:32
См. SetClipboardViewer + WM_DRAWCLIPBOAR ChangeClipboardChain + WM_CHANGECBCHAIN Пример: |
|
#10 Go © 20.03.06 18:32:01
спасибо :) |
Тема находится в архиве
Написать ответ |
|
