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

•  DeLiKaTeS Tetris (Тетрис)  254

•  TDictionary Custom Sort  3 403

•  Fast Watermark Sources  3 158

•  3D Designer  4 915

•  Sik Screen Capture  3 409

•  Patch Maker  3 614

•  Айболит (remote control)  3 817

•  ListBox Drag & Drop  3 077

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

•  Графические эффекты  4 014

•  Рисование по маске  3 312

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

•  Canvas Drawing  2 828

•  Рисование Луны  2 641

•  Поворот изображения  2 251

•  Рисование стержней  2 192

•  Paint on Shape  1 591

•  Генератор кроссвордов  2 273

•  Головоломка Paletto  1 790

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

•  Пазл Numbrix  1 701

•  Заборы и коммивояжеры  2 078

•  Игра HIP  1 297

•  Игра Go (Го)  1 248

•  Симулятор лифта  1 494

•  Программа укладки плитки  1 241

•  Генератор лабиринта  1 566

•  Проверка числового ввода  1 385

•  HEX View  1 515

•  Физический маятник  1 372

 
скрыть


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-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

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