Delphi. Учимся на примерах | страница 12



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

>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);

>private

> { Private declarations }

>public

> { Public declarations }

>end;


>var

> Form1: TForm1; //главная форма

> ВМР1: Graphics.TBitmap; //для работы с рисунками (* .bmp)

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

> Image1: TImage;


>implementation

>{$R *.dfm}


>procedure TForm1.ButtonlClick(Sender: TObject);

>begin

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

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

> BMP1:= Graphics.TBitmap.Create;

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

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

> BMP1.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);

> BMP1.SaveToFile('с:\1.bmp'); //сохраняем снимок в файл

>  //1.bmp на диске С:\

>end;


>procedure TForm1.Button2Click(Sender: TObject);

>begin

> if SaveDialog1.Execute then

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

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

>end;


>procedure TForm1.Button3Click(Sender: TObject);