public static CParametreFonctionDynamique EditeParametreFonction(CParametreFonctionDynamique parametre) { if (parametre == null) { return(null); } CFormEditVariableFormule form = new CFormEditVariableFormule(); if (parametre != null) { form.m_txtNom.Text = parametre.Nom; form.m_txtType.Text = DynamicClassAttribute.GetNomConvivial(parametre.TypeResultatExpression.TypeDotNetNatif); form.m_chkArray.Checked = parametre.TypeResultatExpression.IsArrayOfTypeNatif; } else { parametre = new CParametreFonctionDynamique(); } form.m_parametre = parametre; CParametreFonctionDynamique retour = null; if (form.ShowDialog() == DialogResult.OK) { retour = form.m_parametre; } form.Dispose(); return(retour); }
//-------------------------------------------------------------------- private void m_lnkRemoveVar_LinkClicked(object sender, EventArgs e) { if (m_wndListeParametres.SelectedItems.Count == 1) { ListViewItem item = m_wndListeParametres.SelectedItems[0]; CParametreFonctionDynamique parametre = item.Tag as CParametreFonctionDynamique; if (parametre != null) { m_wndListeParametres.Items.Remove(item); UpdateParametres(); } } }
//-------------------------------------------------------------------- private void AddVariable(Type typeVariable) { CParametreFonctionDynamique parametre = new CParametreFonctionDynamique(); parametre.TypeResultatExpression = new CTypeResultatExpression(typeVariable, false); parametre = CFormEditVariableFormule.EditeParametreFonction(parametre); if (parametre != null) { ListViewItem item = new ListViewItem(); FillItem(item, parametre); m_wndListeParametres.Items.Add(item); UpdateParametres(); } }
//-------------------------------------------------------------------- private void UpdateParametres() { int nIndex = 0; List <CParametreFonctionDynamique> parametres = new List <CParametreFonctionDynamique>(); foreach (ListViewItem item in m_wndListeParametres.Items) { CParametreFonctionDynamique parametre = item.Tag as CParametreFonctionDynamique; if (parametre != null) { parametre.NumParametre = nIndex++; } parametres.Add(parametre); } m_fonction.Parametres = parametres; m_txtFormule.Init(m_fonction, m_objetPourSousProprietes); }
//-------------------------------------------------------------------- private void m_wndListeVariables_MouseDoubleClick(object sender, MouseEventArgs e) { ListViewHitTestInfo info = m_wndListeParametres.HitTest(e.X, e.Y); if (info != null) { CParametreFonctionDynamique parametre = info.Item.Tag as CParametreFonctionDynamique; if (parametre != null) { CParametreFonctionDynamique newParam = CFormEditVariableFormule.EditeParametreFonction(parametre); if (newParam != null) { FillItem(info.Item, newParam); UpdateParametres(); } } } }
//-------------------------------------------------------------------- private void FillItem(ListViewItem item, CParametreFonctionDynamique parametre) { item.Tag = parametre; item.Text = parametre.Nom; }