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