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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2015, 09:24   #11
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

а зачем брать картинку из шейпа, он будет пуст. надо получить координаты шейпа, и относительно их рассчитать координаты нужной области на имедже
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 26.05.2015, 18:23   #12
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Toxa Посмотреть сообщение
а зачем брать картинку из шейпа, он будет пуст. надо получить координаты шейпа, и относительно их рассчитать координаты нужной области на имедже
Можете посоветовать код который поможет решит данную задачу? Либо что нужно почитать?
Lorden вне форума Ответить с цитированием
Старый 26.05.2015, 18:44   #13
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

http://programmersforum.ru/showthread.php?t=275375
Репутация: полный "0"
zvygin1964 вне форума Ответить с цитированием
Старый 26.05.2015, 18:51   #14
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от zvygin1964 Посмотреть сообщение
Спасибо что дали ссылку, но на данный момент компонент Shape для меня наиболее оптимальный вариант, единственное что не получается это сделать скриншот по координатам Shape, если кто решал данную задачу наведите пожалуйста на путь истинный=)

Нашел код с помощью которого можно сделать скриншот своей программы, но как сделать скриншот области программы в районе компонента Shape?
Код:
var
rcSrc:Trect;
hSrcWnd:HWND;
hDC1:HDC;
hSrcDC:HDC;
hBmp:HBITMAP ;
Bmp:TBitmap;
begin
  bmp:=TBitmap.Create;

  hSrcWnd := FindWindow(nil, PChAR('MyProg'));
  GetWindowRect(hSrcWnd, rcSrc);
  if (rcSrc.Right - rcSrc.Left < 170) and (rcSrc.Bottom - rcSrc.Top < 40) then
    begin
      ShowWindow(hSrcWnd, SW_SHOWNORMAL);
      sleep(100);
      GetWindowRect(hSrcWnd, rcSrc);
    end;

   hDC1:= GetDC(hSrcWnd);
   hSrcDC:=CreateCompatibleDC(hDC1);
   hBmp := CreateCompatibleBitmap(hDC1, 150, 150);

   SelectObject(hSrcDC, hBmp);
   PrintWindow(hSrcWnd, hSrcDC, 0);
   BitBlt(
     hDC1,
     150,
     150,
     150,
     150,
     hSrcDC,
     120,
     120,
     SRCCOPY);

   bmp.Handle:=hbmp;
   bmp.SaveToFile('c:\000\daaaaa.bmp');

  DeleteObject(hBmp);
  DeleteDC(hSrcDC);
  ReleaseDC(hSrcWnd, hDC1);
  bmp.Free;

  if FileExists('c:\000\daaaaa.bmp') then // проверяем существует ли файл
    Image1.Picture.LoadFromFile('c:\000\daaaaa.bmp');

Последний раз редактировалось Lorden; 26.05.2015 в 20:59.
Lorden вне форума Ответить с цитированием
Старый 27.05.2015, 20:56   #15
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Подскажите в данном коде возможно задать координаты компонента где нужно сделать снимок формы?
Код:
var
  DeskTop: TCanvas;
begin
  DeskTop := TCanvas.Create;
  try
    with DeskTop do
      Handle := GetWindowDC(FindWindow(nil, 'Form1'));
    with PaintBox1.Canvas do
      CopyRect(Rect(0, 0, 200, 200),
        DeskTop,
        Rect(0, 0, 200, 200))
  finally
    DeskTop.Free;
  end;
Lorden вне форума Ответить с цитированием
Старый 27.05.2015, 21:00   #16
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

а чо этот код делать-то должен?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 27.05.2015, 21:19   #17
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
а чо этот код делать-то должен?
У меня на форме есть Компонент Image1 в него загружается изображение, на компонент Image1 помещен прозрачный компонент Shape1 с красной границей. При нажатии на кнопку "Скриншот" мне нужно сделать скриншот области картинки (Image1) по координатам Shape1 и вывести его в Image2.
Буду очень благодарен если пнете меня в правильном направлении, ато уже 2 день с места сдвинуться не могу...
Lorden вне форума Ответить с цитированием
Старый 27.05.2015, 22:48   #18
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
пнете меня в правильном направлении
Canvas.CopyRect();
Изображения
Тип файла: png 21.png (27.3 Кб, 29 просмотров)
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 27.05.2015, 23:02   #19
zvygin1964
Старожил
 
Аватар для zvygin1964
 
Регистрация: 19.06.2013
Сообщений: 2,463
По умолчанию

http://docs.embarcadero.com/products..._CopyRect.html

Pascal
procedure CopyRect(const Dest: TRect; Canvas: TCanvas; const Source: TRect);
Изображения
Тип файла: jpg Перевод описания.JPG (84.2 Кб, 119 просмотров)
Репутация: полный "0"

Последний раз редактировалось zvygin1964; 28.05.2015 в 09:15.
zvygin1964 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
компонент Panel C++++ Помощь студентам 2 17.06.2014 09:44
Прозрачный компонент -Jack- Общие вопросы Delphi 2 10.03.2014 16:23
Прозрачный компонент RavangerV Компоненты Delphi 1 09.11.2013 21:53
прозрачный компонент panel ViniPux1112 Мультимедиа в Delphi 2 27.11.2012 20:15
Прозрачный компонент TMemo Rozalinda Компоненты Delphi 3 06.06.2011 03:00