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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2016, 10:29   #11
stlcrash
Форумчанин
 
Регистрация: 04.07.2010
Сообщений: 131
По умолчанию

Огромное спасибо. Проблема решена. Оказывается память переполнялась, только если тыкать на кнопку "получить данные". Вынес ее в таймер, чтоб выводило данные не в сообщении, а в лейбл. И все стало прекрасно работать.
stlcrash вне форума Ответить с цитированием
Старый 20.05.2016, 07:11   #12
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

не надо никаких таймеров, это вредно
ключевой момент Synchronize яндекс на эту тему раскрыто раскажет

Код:
procedure TMonDirThread.Execute;
begin
  while not Terminated do
  begin
    checkall;
    Synchronize(Update);
    inc(n);
    sleep(100);
  end;
end;
Вложения
Тип файла: zip Поток ГЛЮК.zip (45.6 Кб, 4 просмотров)
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 20.05.2016, 11:51   #13
stlcrash
Форумчанин
 
Регистрация: 04.07.2010
Сообщений: 131
По умолчанию

Сделал через Синхрониз. Ничего не изменилось. Так же съедает память, при чем достаточно быстро.
Вложения
Тип файла: zip ТЕСТ.zip (59.1 Кб, 10 просмотров)
stlcrash вне форума Ответить с цитированием
Старый 20.05.2016, 19:19   #14
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Судя по диспетчеру задач утечка объектов GDI...
2 объекта за цикл...

проблема яндексу известна https://yandex.ru/search/?text=delph...A%D0%B5&lr=213
Даже в таком простом примере хавает объекты... особенно когда мышкой шевелить
Код:
unit uMonThread;

interface

uses
  Windows, Messages, SysUtils, Classes,Graphics;

type
  TMonDirThread = class(TThread)
  private
  public
  protected
    procedure Execute; override;
    procedure UpdateCaption;
  end;

implementation
uses unit1;


function Check(const Name:string;Gray:byte;W,H,X,Y:integer):boolean;
var
  ScreenBmp:TBitmap;
  DesktopDC: HDC;
begin
  ScreenBmp:=TBitmap.Create;
  try
    ScreenBmp.Height := H;
    ScreenBmp.Width := W;
    DesktopDC := GetDC(0);
    try
      BitBlt(ScreenBmp.Canvas.Handle, 0,0,W,H,DesktopDC,X,Y,SRCCOPY);
    finally
      ReleaseDC(0, DesktopDC);
    end;
  finally
    ScreenBmp.free;
  end;
end;

procedure TMonDirThread.Execute;
begin
  while not Terminated do
  begin
    check('ls',160,70,13,15,644);;
    Synchronize(UpdateCaption);
  end;
end;

procedure TMonDirThread.UpdateCaption;
begin
  form1.Memo1.Lines.text:='0';
end;


end.
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 20.05.2016 в 21:16.
Slym вне форума Ответить с цитированием
Старый 21.05.2016, 12:46   #15
stlcrash
Форумчанин
 
Регистрация: 04.07.2010
Сообщений: 131
По умолчанию

Ага. Ну потом как время появится, переделаю. чтоб скринил из основной процедуры, обрабатывал в потоке. Либ делать скрины не так часто, а пилить полный скрин экрана на нужного размера кусочки.
stlcrash вне форума Ответить с цитированием
Старый 21.05.2016, 13:22   #16
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Вынес скриншот в основной поток...
Вложения
Тип файла: zip ТЕСТ.zip (35.2 Кб, 11 просмотров)
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 22.05.2016, 23:03   #17
stlcrash
Форумчанин
 
Регистрация: 04.07.2010
Сообщений: 131
По умолчанию

Теперь всегда выдает results[...] False. Даже если должно быть true. Все равно false
stlcrash вне форума Ответить с цитированием
Старый 23.05.2016, 04:00   #18
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Для тестов нужен скриншот твоего экрана с гарантированным true любого параметра... в лузлес формате т.е. bmp но пожатый 7zipом
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Старый 23.05.2016, 06:24   #19
stlcrash
Форумчанин
 
Регистрация: 04.07.2010
Сообщений: 131
По умолчанию

Искажение времени, тотем скорость и перевоплощение должны быть True
Вложения
Тип файла: zip scr.zip (1.23 Мб, 11 просмотров)
stlcrash вне форума Ответить с цитированием
Старый 24.05.2016, 18:37   #20
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

затестил твой скриншот:
если его грузить LoadFromFile (вместо скрининга) то все нормально детектит...
изучаю дальше
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос про оперативную память Lmt32 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 16.12.2015 21:32
Отображение файла в оперативную память rostik123 Win Api 1 06.11.2012 04:59
Отображение файла в оперативную память rostik123 Общие вопросы C/C++ 3 29.10.2012 20:02
Картинку в оперативную память MORPEH Мультимедиа в Delphi 1 12.03.2012 01:35
Как чистить оперативную память??? Altera Операционные системы общие вопросы 10 16.05.2008 14:52