コード例 #1
0
        /// <summary>
        /// Show the formula manager
        /// </summary>
        /// <param name="Formulas">The default formulas</param>
        /// <returns>Dialog result</returns>
        public DialogResult ShowForm(FormulaArea fa, FormulaBase SelectedFormula)
        {
            if (fa != null)
            {
                string[] Formulas = fa.FormulaToStrings();
                if (Formulas != null)
                {
                    this.CurrentFormulas = string.Join("#", Formulas);
                    string s = "";
                    if (SelectedFormula != null)
                    {
                        s = SelectedFormula.CreateName;
                    }

                    this.SelectedFormula = s;

                    ArrayList al = new ArrayList();
                    al.AddRange(Formulas);
                    if (fa.IsMain())
                    {
                        al.AddRange(OverlayFormulas);
                    }
                    else
                    {
                        al.AddRange(ListedFormulas);
                    }
                    AddFavorite((string[])al.ToArray(typeof(string)));
                }
            }
            return(ShowDialog());
        }
コード例 #2
0
ファイル: DemoForm.cs プロジェクト: baotinsoft/FullKnowledge
//		private void miChangeFormulaParameter_Click(object sender, System.EventArgs e)
//		{
//
//			if (ChartControl.Chart.Areas.Count>0)
//			{
//				//Get first area
//				FormulaArea fa = ChartControl.Chart.Areas[0];
//				if (fa.Formulas.Count>2)
//					//Get third formula and set N parameter to 20
//					fa.Formulas[2].SetParam("N","20");
//			}
//			ChartControl.SaveChartProperties();
//			ChartControl.NeedRebind();
//		}

        /// <summary>
        /// Add RSI(10) to fa if not exist
        /// </summary>
        /// <param name="fa"></param>
        private void AddFormula(FormulaArea fa)
        {
            if (fa != null)
            {
                string    Indicator = "RSI(10)";
                ArrayList al        = new ArrayList();
                al.AddRange(fa.FormulaToStrings());
                if (al.IndexOf(Indicator) < 0)
                {
                    al.Add(Indicator);
                    fa.Formulas.Clear();
                    fa.StringsToFormula((string[])al.ToArray(typeof(string)));
                    ChartControl.NeedRebind();
                }
            }
        }
コード例 #3
0
ファイル: DemoForm.cs プロジェクト: baotinsoft/FullKnowledge
//		private void miAddFormula1_Click(object sender, System.EventArgs e)
//		{
//			if (ChartControl.Chart.Areas.Count>2)
//				AddFormula(ChartControl.Chart.Areas[2]);
//		}
//
//		private void miAddFormula2_Click(object sender, System.EventArgs e)
//		{
//			AddFormula(ChartControl.Chart.SelectedArea);
//		}
//
//		private void miAddFormula3_Click(object sender, System.EventArgs e)
//		{
//			if (ChartControl.Chart.Areas.Count<8)
//				ChartControl.DefaultFormulas +=";RSI(10)";
//		}

        private void MoveFormula(FormulaArea fa1, FormulaArea fa2, int Index)
        {
            if (fa1 != null && fa2 != null)
            {
                ArrayList al = new ArrayList();
                al.AddRange(fa1.FormulaToStrings());
                if (al.Count > Index)
                {
                    string s = (string)al[Index];
                    al.RemoveAt(Index);
                    fa1.Formulas.Clear();
                    fa1.StringsToFormula((string[])al.ToArray(typeof(string)));

                    s = fa2.FormulaToString('#') + '#' + s;
                    fa2.Formulas.Clear();
                    fa2.StringToFormula(s, '#');
                    ChartControl.NeedRebind();
                }
            }
        }