Главная страница
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.023 c
1-81233
Sergey_G
2002-07-14 14:17
2002.07.25
Доброго дня мастера! Кто разбирается в RichEdit?


1-81255
nitro313
2002-07-15 05:51
2002.07.25
Мастаки подскажите пожалуйста! Пишу я следующее...


1-81334
Начинающий програмер
2002-07-12 18:18
2002.07.25
INI или что-нибудь подобное


1-81355
qqqqq
2002-07-13 09:37
2002.07.25
Как видео запихать в прогу???


3-81156
Eagle
2002-07-03 11:15
2002.07.25
UPPER в InterBase