Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
unitClipboardViewer; 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
WMChangeCBCHain(var
message
: TMessage); message
WM_CHANGECBCHAIN; 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
// Восстанавливаем цепочки. ChangeClipboardChain(Handle, FNextViewerHandle); end
; procedure
TForm1.WMDrawClipboard(var
message
: TMessage); begin
// Вызывается при любом изменении содержимого буфера обмена message
.Result := SendMessage(WM_DRAWCLIPBOARD, FNextViewerHandle, 0, 0); end
; procedure
TForm1.WMChangeCBCHain(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_CHANGECBCHAIN, message
.wParam, message
.lParam); end
; end
; end
.