Четверг, 19.06.2025, 15:27
Приветствую Вас Гость | RSS
Меню сайта
fff
  • Индексация
  • Девочки
    Форма входа
    Категории раздела
    Теория алгоритмов [3]
    Теория алгоритмов
    Code Snippets [1]
    Code Snippets
    Все о PHP [20]
    Все о PHP
    Visual C++ [13]
    Visual C++
    WIN32 API [7]
    WIN32 API
    Delphi [72]
    Delphi
    ASP [2]
    ASP
    Java [67]
    Java
    VBScript [6]
    VBScript
    CGI [2]
    CGI
    VRML [2]
    VRML
    PERL [9]
    PERL
    HTML [4]
    HTML
    XML [10]
    XML
    Архив записей

    Статьи по Оптимизации

    ПРОГРАММИРОВАНИЕ! СОЗДАНИЕ САЙТОВ И ИХ ОПТИМИЗАЦИЯ

    Главная » Статьи » Программирование » Delphi

    Просмотр буфера обмена
    Просмотр буфера обмена
    Пример на основе простого модуля-класса, осуществляющего просмотр буфера обмена.
    unit ClipboardViewer;

    interface

    uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
    Dialogs;

    type
    TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    private
    FNextViewerHandle : THandle;
    procedure WMDrawClipboard (var message : TMessage);
    message WM_DRAWCLIPBOARD;
    procedure WMCBCHain (var message : TMessage);
    message WM_CBCHAIN;
    public
    end;
    var

    Form1: TForm1;

    implementation
    {$R *.DFM}

    procedure TForm1.FormCreate(Sender: TObject);
    begin

    // Проверяем работоспособность функции.
    // При невозможности просмотра буфера обмена
    // функция возвратит значение Nil.
    FNextViewerHandle := SetClipboardViewer(Handle);
    end;

    procedure TForm1.FormDestroy(Sender: TObject);
    begin

    // Восстанавливаем цепочки.
    ClipboardChain(Handle, FNextViewerHandle);
    end;

    procedure TForm1.WMDrawClipboard (var message : TMessage);
    begin
    // Вызывается при любом изменении содержимого буфера обмена

    message.Result := SendMessage(WM_DRAWCLIPBOARD, FNextViewerHandle, 0, 0);
    end;

    procedure TForm1.WMCBCHain (var message : TMessage);
    begin

    // Вызывается при любом изменении цепочек буфера обмена.
    if message.wParam = FNextViewerHandle then begin
    // Удаляем следующую цепочку просмотра. Корректируем внутреннюю переменную.
    FNextViewerHandle := message.lParam;
    // Возвращаем 0 чтобы указать, что сообщение было обработано
    message.Result := 0;
    end else begin
    // Передаем сообщение следующему окну в цепочке.
    message.Result := SendMessage(FNextViewerHandle, WM_CBCHAIN,
    message.wParam, message.lParam);

    end;
    end;

    end.

    Категория: Delphi | Добавил: Merlin (07.12.2009)
    Просмотров: 368 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *: