Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2007, 14:05   #11
Briz
Пользователь
 
Аватар для Briz
 
Регистрация: 07.10.2007
Сообщений: 37
По умолчанию

все работает! Но мне нужно чтоб при нажатии button2 выдовало окно куда сохранить рисунок.
Хочу все знать!
Briz вне форума Ответить с цитированием
Старый 03.11.2007, 14:10   #12
Omedus
Пользователь
 
Аватар для Omedus
 
Регистрация: 01.11.2007
Сообщений: 27
Сообщение

Код:
procedure TForm1.Button2Click(Sender: TObject);
begin
p:=InputBox('Путь сохранения скриншота','Введите полный путь до существующей папки','c:\')+'Screen.jpg';
bmp:=TBitmap.Create;
bmp.Height:=Screen.Height;
bmp.Width:=Screen.Width;
DC:=GetDC(0);
bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
DC, 0, 0, SRCCOPY);
bmp.SaveToFile(p);
ReleaseDC(0, DC);
bmp.Free;
end;
//не забудь прописать переменную "p" формата string :)
Генерация случайных чисел — слишком важное дело, чтобы оставлять её на волю случая.
Scientia potentia est

Последний раз редактировалось Omedus; 03.11.2007 в 14:13.
Omedus вне форума Ответить с цитированием
Старый 03.11.2007, 14:16   #13
Briz
Пользователь
 
Аватар для Briz
 
Регистрация: 07.10.2007
Сообщений: 37
По умолчанию

все равно ошибка p:=InputBox('Путь сохранения скриншота','Введите полный путь до существующей пап я прописал
var
p: string;
Хочу все знать!
Briz вне форума Ответить с цитированием
Старый 03.11.2007, 14:37   #14
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Дописывая +'.JPG' рисунок все равно остается растровым. (посмотрите на его размер)
Для сохранения в JPEG вот приер:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg;

type
  TForm1 = class(TForm)
    Button1: TButton;

    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  DC: HDC;
bmp: TBitmap;
jpgImg: TJPEGImage;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  bmp:=TBitmap.Create;
  jpgImg := TJPEGImage.Create;
    bmp.Height:=Screen.Height;
    bmp.Width:=Screen.Width;
    DC:=GetDC(0);
    bitblt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
      DC, 0, 0, SRCCOPY);

  ReleaseDC(0, DC);
  jpgImg.Assign(bmp); {в JPG грузим Битмап}
  jpgImg.CompressionQuality:=100; {устанавливаем компрессию (качество) (1-100)}
  jpgImg.SaveToFile('f:/Screen.jpg'); {сохраняем в формате JPG}
  jpgImg.Free;
  bmp.Free;
end;

end.
Alex21 вне форума Ответить с цитированием
Старый 03.11.2007, 14:42   #15
Briz
Пользователь
 
Аватар для Briz
 
Регистрация: 07.10.2007
Сообщений: 37
По умолчанию

отлично, но как сделать чтоб я мог сам его сохранять, а н автоматом?
Хочу все знать!
Briz вне форума Ответить с цитированием
Старый 03.11.2007, 15:06   #16
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от Briz Посмотреть сообщение
отлично, но как сделать чтоб я мог сам его сохранять, а н автоматом?
компоненты:
SaveDialog, SavePictureDialog
Alex21 вне форума Ответить с цитированием
Старый 03.11.2007, 15:30   #17
Briz
Пользователь
 
Аватар для Briz
 
Регистрация: 07.10.2007
Сообщений: 37
По умолчанию

а можно код?
Хочу все знать!
Briz вне форума Ответить с цитированием
Старый 03.11.2007, 15:38   #18
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от Briz Посмотреть сообщение
а можно код?
Добавь компанент SavePictureDialog и в предыдущем коде измени:

Код:
  if SavePictureDialog1.Execute then
    jpgImg.SaveToFile(SavePictureDialog1.FileName+'.jpg'); {сохраняем в формате JPG}
Alex21 вне форума Ответить с цитированием
Старый 03.11.2007, 15:50   #19
Briz
Пользователь
 
Аватар для Briz
 
Регистрация: 07.10.2007
Сообщений: 37
По умолчанию

спасибо! а можно сделать так чтоб снимок сначало появлялся на PaintBox, а потом сохранять?
Хочу все знать!
Briz вне форума Ответить с цитированием
Старый 03.11.2007, 16:23   #20
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Грузите лучше в Image:
Код:
....
  image1.Width:=bmp.Width;
  image1.Height:=bmp.Height;
  image1.Picture.Bitmap:=bmp;
  .....
Alex21 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разрешение экрана Михаил Юрьевич Общие вопросы Delphi 3 11.07.2008 21:33
Разрешение экрана -=<[Evklidd]>=- Общие вопросы Delphi 1 20.02.2008 10:55
как сделать так что при изменении разрешения экрана программа работала... Victor[famas] Общие вопросы Delphi 7 13.02.2008 12:48
Как сделать снимок экрана в графическом режиме? Борис2 Паскаль, Turbo Pascal, PascalABC.NET 9 08.12.2007 21:07
Снимок экрана Viteef Общие вопросы Delphi 9 16.05.2007 20:12