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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2009, 19:57   #11
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

2grey,
Ваш способ надо немного дописать:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
c:tcanvas;
begin
c:=tcanvas.Create;
c.Handle:=getdc(panel1.Handle);
image1.Canvas.CopyRect(image1.Canvas.ClipRect,c,c.ClipRect);
end;
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 09.11.2009, 20:42   #12
grey
Пользователь Подтвердите свой е-майл
 
Регистрация: 24.10.2007
Сообщений: 36
По умолчанию

Извиняюсь, что заморочил тут всем голову (у меня мало опыта, что бы применять сложные решения), но до меня таки дошло:
ScreenDC : HDC; - это уже переменная, и помещать её нужно в глбальные.

Тогда при щелчке по кнопке например RadioButton1
пишу в переменную
Код:
ScreenDC := GetDC(Form1.Panel1.Handle);
и уже (по мере надобности) другой кнопкой сохраняю это в jpeg, получилось компактней на полторы сотни строк.

Всем большое спасибо за участие

PS.
а способ снятия/сохранения скринов считаю что в моём случае оптимальный:
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
   MyBitmap : TBitmap;
   ScreenDC : HDC;
begin
  MyBitmap:=TBitmap.Create;
  ScreenDC := GetDC(Form1.Panel1.Handle);
  MyBitmap.LoadFromDevice(ScreenDC);
  jpg:=tjpegimage.create; 
  jpg.assign( MyBitmap);
  jpg.compressionquality:=100;
  jpg.savetofile (' ');
  SaveDialog1.InitialDir := FpGetEnv('HOME') + '/Desktop/ini_pic';
  SaveDialog1.Filter:='jpg-files|*.jpg|All Files|*.*';
  SaveDialog1.FileName:='01_Pos.'+PosToFileName+'_date_'+DateToFileName+'.jpg';
   If SaveDialog1.Execute then jpg.SaveToFile(SaveDialog1.FileName);
  jpg.free;
  MyBitmap.Free;
end;
grey вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Win32 как вывести на экран значение переменной STill_ace Общие вопросы C/C++ 11 22.08.2009 17:47
Имя переменной как переменная. Как получить доступ к такой переменной? Denni Microsoft Office Access 8 02.04.2009 10:06
Вывести имя переменной wall66 PHP 11 13.12.2008 10:48
Вывести на панель задач Shouldercannon Общие вопросы Delphi 9 07.11.2008 21:23
Как создать программу-панель (как панель Msoffice), чтобы была поверх всех окон Romanbl4 Общие вопросы Delphi 6 27.06.2007 17:23