На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: jack128, Rouse_, Krid
  
    > Контроль за изменением содержимого буфера обмена
      ExpandedWrap disabled
        unit Unit1;
         
        interface
         
        uses
          Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
          Dialogs, StdCtrls;
         
        type
          TForm1 = class(TForm)
            Memo1: TMemo;
            procedure FormCreate(Sender: TObject);
            procedure FormDestroy(Sender: TObject);
          private
            hwndNextViewer: THandle;
            procedure WMChangeCbChain(var Message: TWMChangeCBChain); message WM_CHANGECBCHAIN;
            procedure WMDrawClipboard(var Message: TMessage); message WM_DRAWCLIPBOARD;
          end;
         
        var
          Form1: TForm1;
         
        implementation
         
        {$R *.dfm}
         
        procedure TForm1.FormCreate(Sender: TObject);
        begin
          // Add the window to the clipboard viewer chain.
          hwndNextViewer := SetClipboardViewer(Handle);
          Memo1.Lines.Clear
        end;
         
        procedure TForm1.WMChangeCbChain(var Message: TWMChangeCBChain);
        begin
          with Message do
          begin
         
            // If the next window is closing, repair the chain.
            if Remove = hwndNextViewer then
              hwndNextViewer := Next
         
            // Otherwise, pass the message to the next link.
            else
              if hwndNextViewer <> 0 then
                SendMessage(hwndNextViewer, Msg, Remove, Next);
          end;
        end;
         
        // clipboard contents changed.
        procedure TForm1.WMDrawClipboard(var Message: TMessage);
        begin
          // Pass the message to the next window in clipboard
          // viewer chain.
          Memo1.Lines.Add('Сhanged');
          with Message do
            SendMessage(hwndNextViewer, Msg, WParam, LParam);
        end;
         
        procedure TForm1.FormDestroy(Sender: TObject);
        begin
          ChangeClipboardChain(Handle, hwndNextViewer);
        end;
         
        end.

      Автор: Rouse_
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0153 ]   [ 16 queries used ]   [ Generated: 27.04.24, 20:12 GMT ]