Форум: "WinAPI";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];
ВнизКак узнать момент копирования текста в буфер обмена ? Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.04.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.157 c