Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2009, 23:01   #1
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию Как узнать что в содержимое буфера обмена добавилось что либо?

Как узнать что в содержимое буфера обмена добавилось что либо?

конкретно знаю как просматривать его (что в нем точнее), но таймер тут для моей цели не идет так как надо сразу узнать что добавилось в буфер обмена
zotox вне форума Ответить с цитированием
Старый 15.09.2009, 02:14   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Пример из DRKB
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    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;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
hwndNextViewer := SetClipboardViewer(Handle);
Memo1.Lines.Clear
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.
Memo1.Lines.Add('Сhanged');
with Message do
   SendMessage(hwndNextViewer, Msg, WParam, LParam);
end;


procedure TForm1.FormDestroy(Sender: TObject);
begin
ChangeClipboardChain(Handle, hwndNextViewer);
end;

end.
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 15.09.2009, 12:07   #3
apocalypce
Пользователь
 
Аватар для apocalypce
 
Регистрация: 08.08.2009
Сообщений: 65
По умолчанию

можно так: к примеру по кнопке вставить
Код:
Memo1.PasteFromClipboard;
кидаем на проект компонент applicationevents далее прописываем в Onldle:
Код:
procedure TForm1.ApplicationEvents1Idle(Sender: TObject;
  var Done: Boolean);
begin
if Clipboard.AsText = '' then
AdvGlowButton1.Enabled := False else
AdvGlowButton1.Enabled := True;
end;
вот так вот!т.е. если в буфере в данном случе нет текста ,то кнопка вставить не активна, если есть текст то кнопка вставить активна. аналогично можно проделать сч кнопками вырезать, копировать.
Error 404: Подпись not found
apocalypce вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать куда и что отправляет программа? TwiX Работа с сетью в Delphi 9 10.08.2009 08:17
Записать содержимое буфера обмена в файл. sw3n Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 17.07.2009 02:39
DLL!!!Как узнать что PUSH-ит!!! Kuznecov Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 10.02.2009 22:04
Как узнать что в комп вставили флешку? Alex.rus Помощь студентам 5 27.09.2008 17:30