Вверх ↑
Пакеты 
HiAsm4
Windows 
Компоненты 
Инcтpумeнты 
Общие - ChangeMon

ChangeMon
Краткое описание
   Компонент предназначен для мониторинга изменения данных в потоке
Параметры
  • Data - Задаёт начальное значение данных в компоненте
  • Методы
  • doData - Сравнивает данные из потока с данными компонента и если они не равны, то запоминает их и выдает в поток, иначе ничего не делает.
  • События
  • onData - Событие происходит всякий раз при несовпадении данных из потока с данными в компоненте и выдает эти данные назад в поток.
  • onNoData - Событие происходит всякий раз при совпадении данных из потока с данными в компоненте и выдает эти данные назад в поток.
  • Данные
  • Data - Определяет данные
  • Примеры
       Простой пример схемы мониторинга изменения активного окна в Windows. Для ее проверки откройте несколько приложений и попереключайтесь между ними

    
    Add(ChangeMon,141182,189,133)
    {
    link(onData,267798:doAdd,[])
    link(Data,14620434:CaptionText,[])
    }
    Add(Timer,11522276,133,133)
    {
    Interval=10
    link(onTimer,141182:doData,[])
    }
    Add(ListBox,267798,252,133)
    {
    Width=276
    Height=147
    Align=5
    AddType=1
    }
    Add(WinEnum,15470354,189,28)
    {
    Point(GetActiveWindow)
    }
    Add(WinTools,14620434,189,84)
    {
    link(Handle,15470354:GetActiveWindow,[(195,72)(202,72)])
    }
    Замечания
      Компонент осуществляет проверку данных на входе с теми, что сохранены у него внутри, и если данные различны, то компонент запоминает их и вызывает событие onData. Одним словом, он весьма полезен в ситуациях, когда необходимо предпринимать какие-то действия при изменении данных в потоке, причем совершенно не важно, что это за данные. Такими ситуациями может быть, например, необходимость обновить данные на форме или необходимость среагировать на изменившийся код нажатой клавиши. Так же этот компонент будет полезен в программах, считывающих управляющие сигналы, например, с портов ПС. Поскольку считывание ведется непрерывно, то для однократной реакции на конкретные данные (или в простейшем случае число) простого сравнения их с заданным значением компонентом IF будет недостаточно и IF сработает столько раз, сколько успеет пока длится сигнал.

    Обновление элемента: [svn]ChangeMon.pas[/svn]
    BB-code статьи для вставки
    Всего комментариев: 0
    (комментарии к статье еще не добавлены)
    Комментарий
    ...