Главная Новые темы Список тем Задать вопрос Поиск  

Форум "Delphi" (архив)


Паскаль, Делфи


 #0 Go © 20.03.06 17:24:41 - 20.03.06 18:32:01

буфер



а как можно словить событие, если чегото в буфер кладут!? :) Цитата

 #1 Deep © 20.03.06 17:36:33

Гм.... ну.... в буффер можно положить много чего...    

Прикладная программа посылает сообщение 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 !?
 #3 Deep © 20.03.06 17:56:49

> а если не  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
допустим :)
 #7 Deep © 20.03.06 18:18:33

> мне нужно ловить не_на_форме.. а на контролсах которые там
> живут :)
Дык, ловить можно на форме, а поймав определить хендл активного окна... (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

спасибо :)




  • Тема находится в архиве

    Написать ответ

    Имя: Регистрация HTML?
    smiles смайлики
    Потом перейти в:    
    паутина



      ©  webest.net, 2002-2007  

    top.mail.ru
    » Бесплатный счетчик посещений
    » Рейтинг сайтов