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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2019, 10:24   #1
falsebegin
Форумчанин
 
Регистрация: 23.11.2016
Сообщений: 100
По умолчанию Как исправить Out of system resources выходит ошибка во время произвольной области

Как исправить Out of system resources выходит это ошибка во время произвольной области может кто поможет как его исправить?

Последний раз редактировалось falsebegin; 17.03.2019 в 16:37.
falsebegin вне форума Ответить с цитированием
Старый 17.03.2019, 11:15   #2
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Дельфи не дружит с отрицательной высотой картинки.
А так же вам поправил парочку утечек памяти.

Код:
procedure NormRect(var aRect: TRect);
var tmp:Integer;
begin
if  aRect.Left > aRect.Right  then
    begin
      tmp:=aRect.Left;
      aRect.Left:=aRect.Right;
      aRect.Right:=tmp;
    end;
if  aRect.Top > aRect.Bottom  then
    begin
      tmp:=aRect.Top;
      aRect.Top:=aRect.Bottom;
      aRect.Bottom:=tmp;
    end;
end;

function CaptureScreenRect(aRect: TRect): TBitMap;
var
 ScreenDC: HDC;
 ActHandles:HWND;

begin
 Result := TBitMap.Create;
 with Result, aRect do
  begin
 Result.Free;
 Result := TBitMap.Create;
 NormRect(aRect);

 Result.Width := aRect.Right - aRect.Left;
 Result.Height :=aRect.Bottom - aRect.Top;
 ActHandles := GetDesktopWindow;
 ScreenDC  := GetWindowDC(ActHandles);
 try
   BitBlt(Result.Canvas.Handle, 0, 0, Result.Width, Result.Height, ScreenDC, aRect.Left, aRect.Top, SRCCOPY);
 finally
   ReleaseDC(ActHandles, ScreenDC);
 end;
end;
end;


procedure TForm2.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  r: TRect;
begin
  isDown := false;
  r.Left := downX;
  r.Top := downY;
  r.Right := X;
  r.Bottom := Y;
  Bild.Free;
  Bild := CaptureScreenRect(r);
  Self.Close;
end
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 17.03.2019, 11:45   #3
falsebegin
Форумчанин
 
Регистрация: 23.11.2016
Сообщений: 100
По умолчанию Pavia

Спасибо большое наконец то больше не выходит ошибка
falsebegin вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Out of system resources HelloWold C++ Builder 0 03.11.2015 23:24
Ошибка Out of system resources BF_KARATEL C++ Builder 0 26.05.2014 22:49
Out of system resources dimavit Общие вопросы Delphi 6 17.08.2012 12:15
Out of system resources sergeyrulit Общие вопросы Delphi 1 19.11.2010 23:53
Office System Developer Resources niziriska Общие вопросы .NET 0 16.04.2010 10:26