Недавно добавленные исходники

•  Animation Loaders  972

•  DeLiKaTeS Tetris (Тетрис)  5 902

•  TDictionary Custom Sort  7 856

•  Fast Watermark Sources  7 523

•  3D Designer  10 752

•  Sik Screen Capture  8 082

•  Patch Maker  8 282

•  Айболит (remote control)  8 332

•  ListBox Drag & Drop  7 172

•  Доска для игры Реверси  101 146

•  Графические эффекты  8 395

•  Рисование по маске  7 774

•  Перетаскивание изображений  6 366

•  Canvas Drawing  6 742

•  Рисование Луны  6 671

•  Поворот изображения  5 801

•  Рисование стержней  4 748

•  Paint on Shape  3 447

•  Генератор кроссвордов  4 439

•  Головоломка Paletto  3 581

•  Теорема Монжа об окружностях  4 383

•  Пазл Numbrix  2 839

•  Заборы и коммивояжеры  3 790

•  Игра HIP  2 556

•  Игра Go (Го)  2 561

•  Симулятор лифта  2 953

•  Программа укладки плитки  2 380

•  Генератор лабиринта  3 129

•  Проверка числового ввода  2 614

•  HEX View  3 019

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Как работать с буфером обмена (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;





Похожие по теме исходники

Clipboard (буфер обмена)

Clipboard Analyser

Clipboard Viewer

Clipboard Format Spy

 



Copyright © 2004-2026 "Delphi Sources" by «SiteAnalyzer». Delphi World FAQ

Группа ВКонтакте