Вниз
Скачать: CL | DM;

Как узнать момент копирования текста в буфер обмена ?   Найти похожие ветки 

 
HWND   (2006-01-17 22:02) [0]

Как узнать момент копирования текста в буфер обмена ?(хендел окна известен)

И ещё как получить выделенный текст в другом окне?


 
Rouse_ ©   (2006-01-17 22:09) [1]

SetClipboardViewer


 
HWND   (2006-01-18 02:21) [2]

Спасибо, это я сделал:


private
 NH:HWND;
 procedure WMCOPY(var Message: TMessage);message  WM_DRAWCLIPBOARD;

uses clipbrd;

procedure TForm1.WMCOPY(var Message: TMessage);
begin
 beep;
 if Clipboard.HasFormat(CF_TEXT) then Caption:= Clipboard.AsText
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 NH:=  SetClipboardViewer(Form1.Handle);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 ChangeClipboardChain(Form1.Handle,NH);
end;


А как получить выделенный текст из другого окна?


 
Fay ©   (2006-01-18 06:53) [3]

2 HWND   (18.01.06 2:21) [2]
А где обработка WM_CHANGECBCHAIN?


 
Rouse_ ©   (2006-01-18 15:01) [4]


> Спасибо, это я сделал:

Если уж делать, то хотябы вот так:

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
 private
   hwndNextViewer: THandle;
   procedure WMChangeCbChain(var Message: TWMChangeCBChain); message WM_CHANGECBCHAIN;
   procedure WMDrawClipboard(var Message: TMessage); message WM_DRAWCLIPBOARD;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 // Add the window to the clipboard viewer chain.
 hwndNextViewer := SetClipboardViewer(Handle);
end;

procedure TForm1.WMChangeCbChain(var Message: TWMChangeCBChain);
begin
 with Message do
 begin

   // If the next window is closing, repair the chain.
   if Remove = hwndNextViewer then
     hwndNextViewer := Next

   // Otherwise, pass the message to the next link.
   else
     if hwndNextViewer <> 0 then
       SendMessage(hwndNextViewer, Msg, Remove, Next);
 end;
end;

// clipboard contents changed.
procedure TForm1.WMDrawClipboard(var Message: TMessage);
begin
 // Pass the message to the next window in clipboard
 // viewer chain.
 with Message do
   SendMessage(hwndNextViewer, Msg, WParam, LParam);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 ChangeClipboardChain(Handle, hwndNextViewer);
end;

end.

> А как получить выделенный текст из другого окна?


Выделить буффер и послать ему WM_GETTEXT



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.043 c
5-1129100926
MegaVolt
2005-10-12 11:08
2006.04.09
Виртуальная канва. Как реализовать?


15-1142514612
Hover
2006-03-16 16:10
2006.04.09
Помогите небольшую задачку решить


10-1116491301
_Max
2005-05-19 12:28
2006.04.09
Копирование в Word`е


2-1143014377
Dmitrij_K
2006-03-22 10:59
2006.04.09
Путь в файлу


15-1142803604
Volf_555
2006-03-20 00:26
2006.04.09
Проблема с DVD - читает только CD-диски, а DVD-нет...




   Наверх