public static FunctionElement createElement(FunctionsManager managerT,String title)
 {
     manager = managerT;
     element = new FunctionElement(manager);
     SmallDialog_FunctionsConfig dialog = new SmallDialog_FunctionsConfig(title);
     dialog.ShowDialog();
     return element;
 }
 //设置地图单元
 public static void configElement(FunctionElement elementT, String title)
 {
     if (elementT == null)
     {
         Console.WriteLine("error in configElement");
         return;
     }
     manager = (FunctionsManager)elementT.parent;
     element = elementT;
     SmallDialog_FunctionsConfig dialog = new SmallDialog_FunctionsConfig(title);
     dialog.textBox_name.Text = element.name;
     dialog.textBox_Commet.Text = element.commet;
     dialog.showParamsList();
     dialog.ShowDialog();
 }
        //转移引用
        public void changeUseInfor(FunctionElement destFunctionElement)
        {
            //TriggerPacksManager triggersManager = ((FunctionsManager)parent).form_main.triggersManager;
            //for (int i = 0; i < triggersManager.getElementCount(); i++)
            //{
            //    TriggerPackElement triggerPack = (TriggerPackElement)triggersManager.getElement(i);
            //    for (int j = 0; j < triggerPack.sentences_Trigger.getElementCount(); j++)
            //    {
            //        Sentence sentence = (Sentence)triggerPack.sentences_Trigger.getElement(j);
            //        if (sentence.functionElement != null && sentence.functionElement.Equals(this))
            //        {
            //            sentence.functionElement = destFunctionElement;
            //        }
            //    }
            //    for (int j = 0; j < triggerPack.sentences_Context.getElementCount(); j++)
            //    {
            //        Sentence sentence = (Sentence)triggerPack.sentences_Context.getElement(j);
            //        if (sentence.functionElement != null && sentence.functionElement.Equals(this))
            //        {
            //            sentence.functionElement = destFunctionElement;
            //        }
            //    }
            //    for (int j = 0; j < triggerPack.triggersManager.getElementCount(); j++)
            //    {
            //        Trigger trigger = (Trigger)triggerPack.triggersManager.getElement(j);
            //        for (int k = 0; k < trigger.sentences_Context.getElementCount(); k++)
            //        {
            //            Sentence sentence = (Sentence)trigger.sentences_Context.getElement(k);
            //            if (sentence.functionElement != null && sentence.functionElement.Equals(this))
            //            {
            //                sentence.functionElement = destFunctionElement;
            //            }
            //        }
            //        for (int k = 0; k < trigger.sentences_Executions.getElementCount(); k++)
            //        {
            //            Sentence sentence = (Sentence)trigger.sentences_Executions.getElement(k);
            //            if (sentence.functionElement != null && sentence.functionElement.Equals(this))
            //            {
            //                sentence.functionElement = destFunctionElement;
            //            }
            //        }
            //    }

            //}
        }
 //克隆
 public override ObjectElement clone()
 {
     FunctionElement newInstance = new FunctionElement((FunctionsManager)parent);
     baseCloneTo(newInstance);
     newInstance.commet = commet+"";
     ArrayList newArray = (ArrayList)newInstance.value;
     ArrayList currentArray=(ArrayList)value;
     for (int i = 0; i < currentArray.Count; i++)
     {
         newArray.Add((int)currentArray[i]);
     }
     return newInstance;
 }
 //判断是否相等
 public bool equalsFunctionElement(FunctionElement destElement)
 {
     if (destElement == null || value == null || destElement.value==null)
     {
         return false;
     }
     if (name == null || destElement.name == null || !destElement.name.Equals(name))
     {
         return false;
     }
     ArrayList paramsArrayLocal = (ArrayList)value;
     ArrayList paramsArrayDest = (ArrayList)destElement.value;
     if (paramsArrayDest.Count != paramsArrayLocal.Count)
     {
         return false;
     }
     for (int i = 0; i < paramsArrayLocal.Count; i++)
     {
         byte byteLocal = (byte)paramsArrayLocal[i];
         byte byteDest = (byte)paramsArrayDest[i];
         if (byteLocal != byteDest)
         {
             return false;
         }
     }
     return true;
 }
        //读写
        #region SerializeAble Members

        public void ReadObject(System.IO.Stream s)
        {
            short len = 0;
            len = IOUtil.readShort(s);

            for (int i = 0; i < len; i++)
            {
                FunctionElement element = new FunctionElement(this);
                element.ReadObject(s);
                addElement(element);
            }
        }