Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.25;
Скачать: CL | DM;

Вниз

ClipBoard   Найти похожие ветки 

 
Yurko   (2002-07-10 03:57) [0]

Как отловить изменение ClipBoard другой програмой?
(чтобы изменять Enabled кнопки "Вставить", например)


 
MBo ©   (2002-07-10 06:03) [1]

setclipboardviewer и т.д.


 
TTCustomDelphiMaster ©   (2002-07-10 09:13) [2]

Обычно команда Вставить нахится в mainmenu и popupmenu и настраивается по событиям onclick и onpopup.
В программах где кнопка Вставить находится на форме, она всегда активна. Вставка же производится только когда формат данных в буфере обмена соответствует необходимому формату.


 
McSimm ©   (2002-07-10 10:06) [3]

Есть техника, позволяющая отслеживать изменения Clipboard. Для этого надо
1. Зарегистрировать свое окно в цепочке ClipboardChain
2. Выполнять необходимые действия по передаче сообщений по цепочке
3. Удалить свое окно из цепочки.

Пример :
procedure TForm1.FormCreate(Sender: TObject);
begin
// Регистрируемся и запоминаем соседа
Hn := SetClipboardViewer(Handle)
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
// Удаляем себя из списка
ChangeClipboardChain(Handle, Hn);
end;
procedure TForm1.ChangeCBChain(var Message: TWMChangeCBChain);
begin
// Обрабатываем событие изменения очереди
if Message.Remove = Hn then Hn := Message.Next
else
if Hn <> 0 then // передаем по цепочке
SendMessage(Hn, Message.Msg, Message.Remove, Message.Next);
Message.Result := 0
end;
procedure TForm1.DrawClipboard(var Message: TWMDrawClipboard);
begin
//Обрабатываем изменения в Clipboard
Button1.Enabled := IsClipboardFormatAvailable(CF_TEXT);
if Hn <> 0 then // передаем по цепочке
SendMessage(Hn, Message.Msg, 0, 0)
end;



 
Yurko ©   (2002-07-14 12:15) [4]

Спасибо, McSimm!



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

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

Наверх




Память: 0.47 MB
Время: 0.014 c
14-81484
Man-In-Red
2002-06-28 21:20
2002.07.25
Возможно ли это…


4-81512
z_1
2002-05-20 15:52
2002.07.25
Хендл активного окна


3-81201
ED_IV
2002-07-04 08:53
2002.07.25
Текст хранимой процедуры в MS SQL


6-81400
Varvar
2002-05-15 08:08
2002.07.25
Login name


14-81448
Lu
2002-06-24 00:17
2002.07.25
Кто нибудьт знает как реализовать работу с SSH