コード例 #1
0
ファイル: frmMain.cs プロジェクト: istanic19/MathIS
        public void RestoreState()
        {
            var state = AritmeticsService.RestoreLastState();

            ClearA();
            ClearB();
            ClearResult();

            if (state == null)
            {
                ArrangeControls();
                return;
            }

            if (state.Item1 != null)
            {
                CreateAritmeticControl(state.Item1, pnlA);
            }
            if (state.Item2 != null)
            {
                CreateAritmeticControl(state.Item2, pnlB);
            }
            if (state.Item3 != null)
            {
                CreateAritmeticControl(state.Item3, pnlResult);
            }

            ArrangeControls();
        }
コード例 #2
0
ファイル: frmMain.cs プロジェクト: istanic19/MathIS
        private void RecordState()
        {
            BaseMathEntity item1 = null;
            BaseMathEntity item2 = null;
            BaseMathEntity item3 = null;

            foreach (Control c in pnlA.Controls)
            {
                item1 = c.Tag as BaseMathEntity;
                if (item1 != null)
                {
                    break;
                }
            }
            foreach (Control c in pnlB.Controls)
            {
                item2 = c.Tag as BaseMathEntity;
                if (item2 != null)
                {
                    break;
                }
            }
            foreach (Control c in pnlResult.Controls)
            {
                item3 = c.Tag as BaseMathEntity;
                if (item3 != null)
                {
                    break;
                }
            }
            AritmeticsService.AddState(item1, item2, item3);
        }
コード例 #3
0
ファイル: frmMain.cs プロジェクト: istanic19/MathIS
        private void copyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Control ctrl = cntxMenu.SourceControl;
            var     ac   = ctrl.Parent.Tag as AritmeticControl;

            if (ac != null)
            {
                AritmeticsService.CopyEntity(ac.Entity);
            }
        }
コード例 #4
0
ファイル: frmMain.cs プロジェクト: istanic19/MathIS
        private void Calculate()
        {
            Number result = null;

            try
            {
                result = AritmeticsService.Calculate(cmbOperation.SelectedItem as MatOperation, lblNum1.Tag as Number, lblNum2.Tag as Number);

                lblResult.Text = result.ToString();
                lblResult.Tag  = result;
            }
            catch (Exception ex)
            {
                lblResult.Text = string.Format("Error: {0}", ex.Message);
            }
        }
コード例 #5
0
ファイル: frmMain.cs プロジェクト: istanic19/MathIS
        private void determinatToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Control ctrl = cntxMenu.SourceControl;
            var     ac   = ctrl.Parent.Tag as AritmeticControl;

            if (ac != null)
            {
                BaseMathEntity conj = null;
                try
                {
                    conj = AritmeticsService.Determinant(ac.Entity);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(this, ex.Message, "Normalize", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                Control container = null;

                if (ctrl == pnlA || ctrl.Parent == pnlA)
                {
                    container = pnlA;
                    ClearA();
                }
                else if (ctrl == pnlB || ctrl.Parent == pnlB)
                {
                    container = pnlB;
                    ClearB();
                }
                else if (ctrl == pnlResult || ctrl.Parent == pnlResult)
                {
                    container = pnlResult;
                    ClearResult();
                }

                var acC = CreateAritmeticControl(conj, container);
                acC.Grid.Focus();

                ArrangeControls();
                RecordState();
            }
        }
コード例 #6
0
ファイル: frmMain.cs プロジェクト: istanic19/MathIS
        private void CalculateVector()
        {
            AritmeticControl ac = null;
            AritmeticControl bc = null;

            if (pnlA.Controls.Count != 0)
            {
                ac = pnlA.Tag as AritmeticControl;
            }
            if (pnlB.Controls.Count != 0)
            {
                bc = pnlB.Tag as AritmeticControl;
            }

            if (ac == null)
            {
                MessageBox.Show(this, "Variable A not defined!", "Calculate", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (bc == null)
            {
                MessageBox.Show(this, "Variable B not defined!", "Calculate", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            BaseMathEntity result = null;

            try
            {
                result = AritmeticsService.CalculateVector((VectorOperation)ddiOperation.SelectedItem.Tag, ac.Entity, bc.Entity);
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.Message, "Calculate", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            if (result == null)
            {
                return;
            }

            if (cb_rbresult_A.Checked)
            {
                ClearA();
                CreateAritmeticControl(result, pnlA);
            }
            else if (cb_rbresult_B.Checked)
            {
                ClearB();
                CreateAritmeticControl(result, pnlB);
            }
            else
            {
                ClearResult();
                CreateAritmeticControl(result, pnlResult);
            }

            ArrangeControls();

            RecordState();
        }