Пользователь
Добро пожаловать,
Регистрация или вход
Потеряли пароль?
Ник:
Пароль:
Меню сайта
Главная
Аккаунт
Пользователи
Опросы
Поиск по сайту
Новости RSS
Форум
Отправить другу
Связаться с нами
Книги
Самоучители
Каталог софта
Исходники
Компоненты
Обработки 1С
CMS-центр
Шаблоны сайтов
Наборы иконок
Статьи и обзоры
Вопросы и ответы
Скрипты
Нетематичное
Ваше мнение
Хотите ли вы стать модератором раздела сайта или форума? (Желающие пишем админу.)
Да, конечно.
Только за большие деньги.
Нет, ни за что.
Ну может в будущем...
Результаты
Другие опросы
Всего голосов:
650
Комментарии:
2
Наши партнеры
Статистика
Статьи и обзоры
Главная
Лучшие
Популярные
Список
Добавить
Просмотр буфера обмена
Пример на основе простого модуля-класса, осуществляющего просмотр буфера обмена.
Код
unit ClipboardViewer;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
FNextViewer
Handle
: T
Handle
;
procedure WMDrawClipboard (var message : TMessage);
message WM_DRAWCLIPBOARD;
procedure WMCBCHain (var message : TMessage);
message WM_CBCHAIN;
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
// Проверяем работоспособность функции.
// При невозможности просмотра буфера обмена
// функция возвратит значение Nil.
FNextViewer
Handle
:= SetClipboardViewer(
Handle
);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
// Восстанавливаем цепочки.
ClipboardChain(
Handle
, FNextViewer
Handle
);
end;
procedure TForm1.WMDrawClipboard (var message : TMessage);
begin
// Вызывается при любом изменении содержимого буфера обмена
message.Result := SendMessage(WM_DRAWCLIPBOARD, FNextViewer
Handle
, 0, 0);
end;
procedure TForm1.WMCBCHain (var message : TMessage);
begin
// Вызывается при любом изменении цепочек буфера обмена.
if message.wParam = FNextViewer
Handle
then begin
// Удаляем следующую цепочку просмотра. Корректируем внутреннюю переменную.
FNextViewer
Handle
:= message.lParam;
// Возвращаем 0 чтобы указать, что сообщение было обработано
message.Result := 0;
end else begin
// Передаем сообщение следующему окну в цепочке.
message.Result := SendMessage(FNextViewer
Handle
, WM_CBCHAIN,
message.wParam, message.lParam);
end;
end;
end.
Разместил:
admin
| | Прочитано: 40665 | |
Смотрите также связанные новости
04.10.2024 -
Кроссворд на Delphi
04.10.2024 -
Рождение, жизнь и гибель формы
04.10.2024 -
Воспроизводим Flash-файл в своем приложении
04.10.2024 -
Работа с потоками в Delphi
04.10.2024 -
SQL-запросы в Delphi
04.10.2024 -
BlobField как Bitmap
04.10.2024 -
Запись и чтение чисел в BLOB-поле
Нет комментариев. Почему бы Вам не оставить свой?
Вы не можете отправить комментарий анонимно, пожалуйста
войдите или зарегистрируйтесь
.
Внимание! Если у вас не получилось найти нужную информацию, используйте
рубрикатор
или воспользуйтесь
поиском
.
Статьи
и
обзоры
Delphi
и
TurboPascal
Просмотр
буфера
обмена
Пример
на
основе
простого
модуля-класса
осуществляющего
просмотр
буфера
обмена
Кодunit
ClipboardViewer
interface
uses
Windows
Messages
SysUtils
Classes
Graphics
Controls
Forms
Dialogs
type
TForm1
class
TForm
procedure
FormCreate
Sender
TObject
FormDestroy
private
FNextViewerHandle
THandle
WMDrawClipboard
message
TMessage
WM_DRAWCLIPBOARD
WMCBCHain
WM_CBCHAIN
public
Form1
implementation
DFM}
begin
Проверяем
работоспособность
функции
При
невозможности
просмотра