//------------------------------------------------------------------------------------------------------
        public static bool EditeFonction(
            ref CFonctionDynamique fonction,
            CObjetPourSousProprietes objetAnalyse,
            params KeyValuePair <string, Type>[] variablesSpecifiques)
        {
            if (fonction == null)
            {
                return(false);
            }
            CFormEditionFonctionDynamique form = new CFormEditionFonctionDynamique();
            CFonctionDynamique            fTmp = CCloner2iSerializable.Clone(fonction) as CFonctionDynamique;

            form.m_panelFonction.Init(fTmp, objetAnalyse, true);
            foreach (KeyValuePair <string, Type> kv in variablesSpecifiques)
            {
                form.m_panelFonction.AddSpecificVariableTypes(kv.Key, kv.Value);
            }
            bool bResult = false;

            if (form.ShowDialog() == DialogResult.OK)
            {
                fonction = fTmp;
                bResult  = true;
            }
            form.Dispose();
            return(bResult);
        }
        //---------------------------------------------------------------------
        private void m_btnAdd_LinkClicked(object sender, EventArgs e)
        {
            CFonctionDynamique fonction = new CFonctionDynamique();

            if (CFormEditionFonctionDynamique.EditeFonction(
                    ref fonction,
                    m_objetPourSousProprietes))
            {
                ListViewItem item = new ListViewItem();
                FillItem(item, fonction);
                m_wndListeFonctions.Items.Add(item);
            }
        }
 //---------------------------------------------------------------
 private void m_btnEdit_LinkClicked(object sender, EventArgs e)
 {
     if (m_wndListeFonctions.SelectedItems.Count == 1)
     {
         ListViewItem       item     = m_wndListeFonctions.SelectedItems[0];
         CFonctionDynamique fonction = item.Tag as CFonctionDynamique;
         if (fonction != null)
         {
             if (CFormEditionFonctionDynamique.EditeFonction(
                     ref fonction,
                     m_objetPourSousProprietes))
             {
                 FillItem(item, fonction);
             }
         }
     }
 }