Форум: "Основная";
Текущий архив: 2002.07.25;
Скачать: [xml.tar.bz2];
Вниз
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c