Beispiel #1
0
        private AritmeticControl CreateAritmeticControl(BaseMathEntity entity, Control container)
        {
            AritmeticControl ac = null;

            if (entity is Number)
            {
                ac = new NumberControl((Number)entity, container);
            }
            else if (entity is Vector)
            {
                ac = new VectorControl((Vector)entity, container);
            }
            else if (entity is Matrix)
            {
                ac = new MatrixControl((Matrix)entity, container);
            }

            if (ac != null)
            {
                ac.Grid.ContextMenuStrip = cntxMenu;
            }

            return(ac);
        }
Beispiel #2
0
        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();
        }