Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11650
Последний выпуск: 19.06.2015

Как работать с буфером обмена (clipboard)

Этот пример использует картинку, кнопку и компонент shape на форме. Когда пользователь кликает по кнопке, то изображение формы сохраняется в в переменной FormImage и копируется в буфер обмена (Clipboard). Затем изображение формы копируется обратно в компонент картинки, тем самым создавая интересный эффект, особенно, если кнопку понажимать несколько раз.

procedure TForm1.Button1Click(Sender: TObject); 
var 
  FormImage: TBitmap; 
begin 
  FormImage := GetFormImage; 
  try 
    Clipboard.Assign(FormImage); 
    Image1.Picture.Assign(Clipboard); 
  finally 
    FormImage.Free; 
  end; 
end; 

procedure TForm1.FormCreate(Sender: TObject); 
begin 
  Shape1.Shape := stEllipse; 
  Shape1.Brush.Color := clLime; 
  Image1.Stretch := True; 
end; 



Следующий пример копирует содержимое экрана в буфер обмена:

procedure CopyScreenToClipboard; 
var dx,dy : integer;           
    hSourcDC,hDestDC,         
    hBM, hbmOld : THandle;     

begin 
  dx := screen.width;              
  dy := screen.height;              
  hSourcDC := CreateDC('DISPLAY',nil,nil,nil); 
  hDestDC  := CreateCompatibleDC(hSourcDC); 
  hBM := CreateCompatibleBitmap(hSourcDC, dx, dy); 
  hbmold:= SelectObject(hDestDC, hBM); 
  BitBlt(hDestDC, 0, 0, dx, dy, hSourcDC, 0, 0, SRCCopy); 
  OpenClipBoard(form1.handle); 
  EmptyClipBoard; 
  SetClipBoardData(CF_Bitmap, hBM); 
  CloseClipBoard; 
  SelectObject(hDestDC,hbmold); 
  DeleteObject(hbm); 
  DeleteDC(hDestDC); 
  DeleteDC(hSourcDC); 
end;

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 

Комментарии

1.
Аноним
Мне нравитсяМне не нравится
20 апреля 2005, 08:57:54
а можно ещё так:

hSourceDC:=GetDC(HWND_DESKTOP);
...
ReleaseDC(HWND_DESKTOP,hSourceDC);

интересно, будет разница?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог