unit Unit1; {in dcld* gepostet von Gerd Kayser} interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls; type TForm1 = class(TForm) Label1: TLabel; procedure FormCreate(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); private { Private-Deklarationen } public { Public-Deklarationen } procedure WMChangeCbChain(var Msg: TMessage); message wm_ChangeCbChain; procedure WMDrawClipboard(var Msg: TMessage); message wm_DrawClipboard; end; var Form1 : TForm1; NextClipboardViewer : Integer; implementation {$R *.DFM} procedure TForm1.WMChangeCbChain(var Msg: TMessage); begin if Msg.wParam = NextClipboardViewer then NextClipboardViewer := Msg.lParam else SendMessage(NextClipboardViewer, wm_ChangeCbChain, Msg.wParam, Msg.lParam); end; procedure TForm1.WMDrawClipboard(var Msg: TMessage); begin SendMessage(NextClipboardViewer, wm_DrawClipboard, Msg.wParam, Msg.lParam); Label1.Caption := 'Clipboard geändert um: ' + TimeToStr(Now); end; procedure TForm1.FormCreate(Sender: TObject); begin NextClipboardViewer := SetClipboardViewer(Form1.Handle); end; procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin ChangeClipboardChain(Form1.Handle, NextClipboardViewer); end; end.