Исходники ISSprite

Nemko

Дилетант
Модератор
Доброго, методом неопытного "анализа", понял из-за чего происходит "утечка" памяти при перерисовке окон (в последней сборке):
В ISSpriteHeader.pas -> в оконной функции spWndPaint -> в WM_ERASEBKGND, не освобождается дескриптор дисплейного контекста устройства (DC). ReleaseDC добавил - "утечка" ушла, но появилось мерцание Btn (при их перемещении), т.к. сообщение передается системе, которая с задержкой стирает фон:
Код:
  WM_ERASEBKGND: begin
      DC:= GetDC(h);
      if (DC <> wParam) then begin
        Result:= CallWindowProc(Pointer(FI^.lpOldProc), h, msg, wParam, lParam);
      end else Result:= 1;
      ReleaseDC(h, DC);
  end;
А так мерцание нет, но не знаю на сколько корректно это? Код выше новее, значит была задумка или что-то будет не работать:
Код:
WM_ERASEBKGND: Result:= 1;
З.Ы.: Будет время буду тестить ещё.
 
Сверху