예제 #1
0
        /// <summary>
        /// ClearError事件
        /// </summary>
        /// <returns>ClearError響應</returns>
        public ExpUpdate ClearError()
        {
            Feature CurrentFeature = Feature.CLEAR_ERROR;

            return(ThrowOrderException <ExpUpdate>(CurrentFeature, () =>
            {
                ExpUpdate expUpdate = NumberMachine.ClearError();
                //執行成功時記錄下這次的Cast
                PreviousFeature = Feature.CLEAR_ERROR;
                return expUpdate;
            }));
        }
예제 #2
0
        /// <summary>
        /// 返回事件
        /// </summary>
        /// <returns>返回響應</returns>
        public ExpUpdate BackSpace()
        {
            Feature CurrentFeature = Feature.BACKSPACE;

            return(ThrowOrderException <ExpUpdate>(CurrentFeature, () =>
            {
                ExpUpdate expUpdate = NumberMachine.BackSpace();
                //執行成功時記錄下這次的Cast
                PreviousFeature = Feature.BACKSPACE;
                return expUpdate;
            }));
        }
예제 #3
0
        /// <summary>
        /// Feature:BackSpace。輸入返回鍵
        /// </summary>
        /// <returns>FrameObject</returns>
        public FrameObject BackSpace()
        {
            return(CatchException(() =>
            {
                ExpUpdate expUpdate = OrderingChecker.BackSpace();

                //完整運算式的刷新
                CompleteExpression = expUpdate.Refresh(CompleteExpression);

                //panel, subpanel設定。
                FrameObject.SubPanel = CompleteExpression;
                FrameObject.Panel = expUpdate.Refresh(FrameObject.Panel);

                return FrameObject;
            }));
        }
예제 #4
0
        /// <summary>
        /// Feature:LeftBracket。輸入左括號
        /// </summary>
        /// <returns>FrameObject</returns>
        public FrameObject LeftBracket()
        {
            return(CatchException(() =>
            {
                ExpUpdate expUpdate = OrderingChecker.LeftBracket();

                //完整運算式的刷新
                CompleteExpression = expUpdate.Refresh(CompleteExpression);

                //panel, subpanel設定。subpanel強制給0
                FrameObject.SubPanel = CompleteExpression;
                FrameObject.Panel = "0";

                return FrameObject;
            }));
        }
예제 #5
0
        /// <summary>
        /// 左括號事件
        /// </summary>
        /// <returns>ExpUpdate</returns>
        public ExpUpdate LeftBracket()
        {
            Feature CurrentFeature = Feature.LEFT_BRACKET;

            return(ThrowOrderException <ExpUpdate>(CurrentFeature, () =>
            {
                ExpUpdate expUpdate = NumberMachine.LeftBracket();

                if (PreviousFeature == Feature.EQUAL)
                {
                    expUpdate.RemoveLength = ExpUpdate.REMOVE_ALL;
                }

                //執行成功時記錄下這次的Cast
                PreviousFeature = Feature.LEFT_BRACKET;
                return expUpdate;
            }));
        }