Use DisplayClipboard procedure for monitoring the clipboard content of text or bitmap formats at runtime.
...
private
procedure DisplayClipboard(var Msg: TWMDrawClipBoard);
message WM_DRAWCLIPBOARD;
...
var
Form1: TForm1;
ClipboardWindow: HWND;
implementation
{$R *.DFM}
procedure TForm1.DisplayClipboard(var Msg: TWMDrawClipBoard);
var
MyHandle: THandle;
begin
if IsClipboardFormatAvailable(CF_TEXT) or
IsClipboardFormatAvailable(CF_BITMAP) then
begin
OpenClipboard(Form1.Handle);
if IsClipboardFormatAvailable(CF_TEXT)then
begin
MyHandle:=Clipboard.GetAsHandle(CF_TEXT);
Memo1.Lines.Add(StrPas(GlobalLock(MyHandle)));
GlobalUnlock(MyHandle);
end;
if IsClipboardFormatAvailable(CF_BITMAP) then
begin
Panel1.Visible:=True;
Image1.Picture.Assign(Clipboard);
end;
CloseClipboard;
end;
SendMessage(ClipboardWindow, WM_DRAWCLIPBOARD, 0, 0);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
OpenClipboard(Form1.Handle);
EmptyClipboard;
CloseClipboard;
Panel1.Visible:=False;
ClipboardWindow:=SetClipboardViewer(Form1.Handle);
end;