Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.09;
Скачать: 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 вся ветка

Текущий архив: 2006.04.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
11-1123318469
Mikki
2005-08-06 12:54
2006.04.09
Борьба с ListView


2-1143138221
Vitalik__
2006-03-23 21:23
2006.04.09
запуск файла


15-1142407750
Alex.
2006-03-15 10:29
2006.04.09
Enterprise Manager для Oracle 10 g


3-1140091873
Alexey V.
2006-02-16 15:11
2006.04.09
Как мне достучаться до базы btrieve?


2-1143221977
Alex7
2006-03-24 20:39
2006.04.09
?????