Beispiel #1
0
 protected override IAsyncResult BeginExecute(AsyncCodeActivityContext context, AsyncCallback callback, object state)
 {
     try
     {
         m_Delegate = new runDelegate(Run);
         var       selStr  = Selector.Get(context);
         UiElement element = null;
         element = Common.GetValueOrDefault(context, this.Element, null);
         if (element == null && selStr != null)
         {
             element = UiElement.FromSelector(selStr);
         }
         else
         {
             PropertyDescriptor property = context.DataContext.GetProperties()[EleScope.GetEleScope];
             element = property.GetValue(context.DataContext) as UiElement;
         }
         if (WaitActive)
         {
             //等待元素活动逻辑
         }
         if (WaitVisible)
         {
             //等待元素可见逻辑
         }
         if (element != null)
         {
             FoundElement.Set(context, element);
         }
     }
     catch (Exception e)
     {
         SharedObject.Instance.Output(SharedObject.enOutputType.Error, "获取子节点元素失败", e.Message);
         if (ContinueOnError.Get(context))
         {
             return(m_Delegate.BeginInvoke(callback, state));
         }
         else
         {
             throw e;
         }
     }
     return(m_Delegate.BeginInvoke(callback, state));
 }
Beispiel #2
0
        protected override IAsyncResult BeginExecute(AsyncCodeActivityContext context, AsyncCallback callback, object state)
        {
            try
            {
                m_Delegate = new runDelegate(Run);
                var       selStr  = Selector.Get(context);
                UiElement element = null;
                element = Common.GetValueOrDefault(context, this.Element, null);
                if (element == null && selStr != null)
                {
                    element = UiElement.FromSelector(selStr);
                }
                else
                {
                    PropertyDescriptor property = context.DataContext.GetProperties()[EleScope.GetEleScope];
                    element = property.GetValue(context.DataContext) as UiElement;
                }

                UiElement relativeEle = element.FindRelativeElement((int)Position, OffSetX.Get(context), OffSetY.Get(context));
                FoundElement.Set(context, relativeEle);
                //relativeEle.DrawHighlight(System.Drawing.Color.Red, TimeSpan.FromSeconds(2), true);

                return(m_Delegate.BeginInvoke(callback, state));
            }
            catch (Exception e)
            {
                SharedObject.Instance.Output(SharedObject.enOutputType.Error, "获取偏移相对元素失败", e.Message);
                if (ContinueOnError.Get(context))
                {
                    return(m_Delegate.BeginInvoke(callback, state));
                }
                else
                {
                    throw e;
                }
            }
        }
Beispiel #3
0
        private FoundElement <T> Search_r(T key, B_Tree_Node <T> root)
        {
            FoundElement <T> foundElement = new FoundElement <T>();

            int i = 0;

            while (i < root.Keys.Count && root.Keys[i].CompareTo(key) < 0)
            {
                i++;
            }
            if (i < root.Keys.Count && root.Keys[i].CompareTo(key) == 0)
            {
                return(new FoundElement <T> {
                    index = i, node = root
                });
            }

            if (root.Pointers != null && root.Pointers.Count > i)
            {
                return(Search_r(key, root.Pointers[i]));
            }

            return(null);
        }