Книга: Delphi. Учимся на примерах
Разработка программного кода
Разработка программного кода
Для начала объявим все переменные, которыми будем пользоваться в программе:
var
Form1: TForm1; //главная форма
ВМР1 :Graphics.ТВitmap; //для работы с рисунками (*.bmp)
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 в действии