Вниз
Скачать: 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.026 c
15-1142602054
Juice
2006-03-17 16:27
2006.04.09
Где переназначать папку Program Files ?


15-1142628974
Труп Васи Доброго
2006-03-17 23:56
2006.04.09
Аудиокниги


2-1143442965
Физик
2006-03-27 11:02
2006.04.09
Как програмно зделать активным модальное окно


5-1128678870
MacCybex
2005-10-07 13:54
2006.04.09
TTabbedNotebook и табуляция!


5-1128573607
DimaBr
2005-10-06 08:40
2006.04.09
Чудеса с TComboBoxEx




   Наверх