Пользователь
Добро пожаловать,
Регистрация или вход
Потеряли пароль?
Ник:
Пароль:
Меню сайта
Главная
Аккаунт
Пользователи
Опросы
Поиск по сайту
Новости RSS
Форум
Отправить другу
Связаться с нами
Книги
Самоучители
Каталог софта
Исходники
Компоненты
Обработки 1С
CMS-центр
Шаблоны сайтов
Наборы иконок
Статьи и обзоры
Вопросы и ответы
Скрипты
Нетематичное
Ваше мнение
Легко ли найти нужную информацию на сайте?
Очень просто
Нахожу почти сразу
Приходится тщательно покопаться
Почти невозможно
Не нашел (лень разбираться)
Результаты
Другие опросы
Всего голосов:
591
Комментарии:
0
Наши партнеры
Статистика
Статьи и обзоры
Главная
Лучшие
Популярные
Список
Добавить
Просмотр буфера обмена
Пример на основе простого модуля-класса, осуществляющего просмотр буфера обмена.
Код
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
FNextViewerHandle : THandle;
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.
FNextViewerHandle := SetClipboardViewer(Handle);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
// Восстанавливаем цепочки.
ClipboardChain(Handle, FNextViewerHandle);
end;
procedure TForm1.WMDrawClipboard (var message : TMessage);
begin
// Вызывается
при
любом изменении содержимого буфера обмена
message.Result := SendMessage(WM_DRAWCLIPBOARD, FNextViewerHandle, 0, 0);
end;
procedure TForm1.WMCBCHain (var message : TMessage);
begin
// Вызывается
при
любом изменении цепочек буфера обмена.
if message.wParam = FNextViewerHandle then begin
// Удаляем следующую цепочку просмотра. Корректируем внутреннюю переменную.
FNextViewerHandle := message.lParam;
// Возвращаем 0 чтобы указать, что сообщение было обработано
message.Result := 0;
end else begin
// Передаем сообщение следующему окну в цепочке.
message.Result := SendMessage(FNextViewerHandle, WM_CBCHAIN,
message.wParam, message.lParam);
end;
end;
end.
Разместил:
admin
| | Прочитано: 42454 | |
Смотрите также связанные новости
24.12.2024 -
Кроссворд на Delphi
24.12.2024 -
Рождение, жизнь и гибель формы
24.12.2024 -
Воспроизводим Flash-файл в своем приложении
24.12.2024 -
Работа с потоками в Delphi
24.12.2024 -
SQL-запросы в Delphi
24.12.2024 -
BlobField как Bitmap
24.12.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
Проверяем
работоспособность
функции
При
невозможности
просмотра