"Delphi. Учимся на примерах" - читать интересную книгу автора (Парижский Сергей Михайлович)

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

Полный исходный код модуля программы 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);

begin

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

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

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

end;


procedure TForm1.Button4Click(Sender: TObject);

begin

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

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

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

end;


end.

#8858; Все файлы проекта и исполняемый файл рассмотренной программы находятся на прилагаемом к книге компакт-диске в папке Chapter04.