Вход/Регистрация
Delphi. Учимся на примерах
вернуться

Парижский Сергей Михайлович

Шрифт:

 DC1: HDC;//простое поле для графики

 Image1:TImage;

Самое главное событие в программе — это нажатие кнопки Сделать снимок экрана. Создадим обработчик этого события:

procedure TForm1.Button1Click(Sender: TObject);

begin

 Form1.Visible := False;//прячем форму

 Sleep(15); //пауза 15 мс

 BMP1:= Graphics.TBitmap.Create;

 //задаем размеры рисунка такие же как размеры экрана

 ВМР1.Height:= Screen.Height;

 ВМР1.Width:= Screen.Width;

 DC1:=GetDC(0);

 //Делаем копию экрана

 BitBlt(BMP1.Canvas.Handle, 0, 0, Screen.Width, Screen.Height, DC1, 0, 0, SRCCOPY);

 Form1.Visible:= True;//восстанавливаем окно программы

 Image1:= TImage.Create(nil);

 BMP1.IgnorePalette:= True;

 Image1.Picture.Assign(BMP1);

 ВМР1.SaveToFile('с:\1.bmp'); //сохраняем снимок в файл 1.bmp на диске С:\

end;

Перед тем как сделать снимок экрана, мы прячем окно программы, делаем паузу в 15 мс и задаем размеры будущего рисунка. После этого делаем снимок экрана и сохраняем его в файл 1.bmp, который находится на диске C:\.

По нажатию кнопки Показать рисунок выполняем следующий код:

procedure TForm1.Button4Click(Sender: TObject);

begin

 Screen1.Show; // делаем рисунок видимым

 if FileExists('с:\1.bmp') then //если рисунок существует,

Screen1.Picture.LoadFromFile('c:\1.bmp'); //загружаем его

end;

По нажатию кнопки Очистить мы должны скрывать рисунок и удалять его с диска:

procedure TForm1.Button3Click(sender: TObject);

begin

 //удаляем рисунок с диска

 if FileExists('с:\1.bmp') then DeleteFile('С:\1.bmp');

 Screen1.Hide; //скрываем рисунок

end;

Для сохранения рисунка будем использовать диалоговое окно. Код нажатия кнопки Сохранить:

procedure TForm1.Button2Click(Sender: TObject);

begin

 if SaveDialog1.Execute then

BMP1.SaveToFile(SaveDialog1.FileName)//сохраняем рисунок

 else ShowMessage('Файл не был сохранен!');

end;

Здесь мы проверяем, выбрал ли пользователь место сохранения файла. Если да, то сохраняем рисунок по указанному расположению.

Откомпилируем и запустим программу на выполнение (результат — на рис. 4.2).

Рис. 4.2. Программа ScreenShot в действии

Полный исходный код модуля

Полный исходный код модуля программы ScreenShot представлен в листинге 4.1.

Листинг 4.1. Модуль программы ScreenShot

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Registry, WinProcs, jpeg;

type TForm1 = class(TForm)

 Button1: TButton;

 Button2: TButton;

 Screen1: TImage;

 SaveDialog1: TSaveDialog;

 Button3: TButton;

 Button4: TButton;

 procedure Button1Click(Sender: TObject);

 procedure Button2Click(Sender: TObject);

 procedure Button3Click(Sender: TObject);

 procedure Button4Click(Sender: TObject);

  • Читать дальше
  • 1
  • ...
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: