Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Поиск по сайту

Активно и часто использую
Использую редко
Обхожусь стандартным рубрикатором
Не знаю, что это такое
Я и сам не знаю, что ищу


Результаты
Другие опросы

Всего голосов: 488
Комментарии: 0


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Статьи и обзоры



Просмотр буфера обмена

Статьи по объектно-ориентированному программированию на языке Pascal и в среде программирования 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 и TurboPascal Просмотр буфера обмена Пример на основе простого модуля-класса осуществляющего просмотр буфера обмена Кодunit ClipboardViewer interface uses Windows Messages SysUtils Classes Graphics Controls Forms Dialogs type TForm1 class TForm procedure FormCreate Sender TObject FormDestroy private FNextViewerHandle THandle WMDrawClipboard message TMessage WM_DRAWCLIPBOARD WMCBCHain WM_CBCHAIN public Form1 implementation DFM} begin Проверяем работоспособность функции При невозможности просмотра