Ejemplo n.º 1
0
        /**
         * \brief Reakce na kliknutí na tlačítko
         * \param sender Odesílatel funkce
         * \param e Argumenty eventu
         */

        private void ButtonClick(object sender, RoutedEventArgs e)
        {
            ROVNASE.Focus();                         //aby na tlačítko 'ENTER' reagovalo '='

            Button clickedButton = sender as Button; //které tlačítko vyvolalo proceduru

#if DEBUG
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("BUTTON:\t\t\tZmáčknuta tlačítko \"{0}\"", clickedButton.Name);
            Console.ResetColor();
#endif

            if (clickedButton == null)
            {
                return;                         //kontrola "kdyby náhodou"
            }
            if ((Keyboard.Modifiers == ModifierKeys.Control) && (clickedButton.Name == "minus"))
            {
                NumberNeg();
            }
            else
            {
                switch (clickedButton.Name)
                {
                    #region  ísla

                case "jedna":       //1
                    NumberOutput("1");
                    break;

                case "dva":         //2
                    NumberOutput("2");
                    break;

                case "tri":         //3
                    NumberOutput("3");
                    break;

                case "ctr":         //4
                    NumberOutput("4");
                    break;

                case "pet":         //5
                    NumberOutput("5");
                    break;

                case "sest":        //6
                    NumberOutput("6");
                    break;

                case "sedm":        //7
                    NumberOutput("7");
                    break;

                case "osm":         //8
                    NumberOutput("8");
                    break;

                case "devet":       //9
                    NumberOutput("9");
                    break;

                case "nula":        //0
                    NumberOutput("0");
                    break;

                case "tecka":       //.
                    if (!(string.IsNullOrEmpty(textOutput.Text)) && PointMode != true)
                    {
                        PointMode = true;
                        if (NumberMode == false)
                        {
                            textOutput.Text = "0,";
                            NumberMode      = true;
                        }
                        else
                        {
                            textOutput.Text += ",";
                        }
                    }
                    break;

                    #endregion  ísla

                    #region základní znamínka

                case "plus":
                    SignInput("+");
                    InputShow(Example);
                    break;

                case "minus":
                    SignInput("-");
                    InputShow(Example);
                    break;

                case "krat":
                    SignInput("×");
                    InputShow(Example);
                    break;

                case "deleno":
                    SignInput("÷");
                    InputShow(Example);
                    break;

                    #endregion základní znamínka

                    #region pokročilá znamínka

                case "mocnina":
                    SignInput("^");
                    InputShow(Example);
                    break;

                case "odmocnina":
                    SignInput("√");
                    InputShow(Example);
                    break;

                case "faktorial":
                    //SignInput("!");
                    //InputShow(Example);
                    try
                    {
                        if (double.Parse(textOutput.Text) > 170)
                        {
                            throw new ArgumentOutOfRangeException();
                        }
                        textOutput.Text = M.fce_fakt(double.Parse(textOutput.Text)).ToString();
                        MadeFakt        = true;
                    }
                    catch (Exception ex)
                    {
#if DEBUG
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Exception: {0}", ex.TargetSite.Name);
                        Console.ResetColor();
#endif
                        switch (ex.TargetSite.Name)
                        {
                        case "fce_fakt":
                            textOutput.Text = "NO NEG FAKT";
                            break;

                        default:
                            textOutput.Text = "FAKT ERROR";
                            break;
                        }
                        GotError   = true;
                        PointMode  = false;
                        ANSWER     = "0";
                        NumberMode = false;
                        Example    = string.Empty;
                        ExampleList.Clear();
                        textInput.Text = "0";
                    }

                    break;

                    #endregion pokročilá znamínka

                    #region pomocná tlačítka

                case "zpet":
                    if (!(string.IsNullOrEmpty(textOutput.Text)) && textOutput.Text.Length > 1)
                    {
                        if (textOutput.Text[textOutput.Text.Length - 1] == '.')
                        {
                            PointMode = false;
                        }
                        textOutput.Text = textOutput.Text.Remove(textOutput.Text.Length - 1);
                    }
                    else
                    {
                        textOutput.Text = "0";
                    }
                    break;

                case "clean":
                    textOutput.Text = "0";
                    PointMode       = false;
                    break;

                case "cleanall":
                    Example = string.Empty;
                    ExampleList.Clear();
                    textOutput.Text = "0";
                    textInput.Text  = "0";
                    PointMode       = false;
                    break;

                case "switch":
                    ResultSwitch();
                    break;

                    #endregion pomocná tlačítka

                    #region konečná tlačítka

                case "ANS":
                    textOutput.Text = ANSWER;
                    break;

                case "ROVNASE":
                    Example += textOutput.Text;
                    ExampleList.Add(textOutput.Text);
                    InputShow(Example);
                    textOutput.Text = "0";
                    InputProcess(Example);
                    break;

                    #endregion konečná tlačítka
                }
            }
        }
Ejemplo n.º 2
0
        /**
         * \brief Reakce na klávesy klávesnice
         * \param sender Odesílatel funkce
         * \param e Argumenty eventu
         */

        private void PressKey(object sender, KeyEventArgs e)
        {
#if DEBUG
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("KEY:\t\t\tZmáčknuta klávesa \"{0}\"", e.Key);
            Console.ResetColor();
#endif
            //if ((Keyboard.Modifiers == ModifierKeys.Control) && (e.Key == Key.Subtract))
            //{
            //NumberNeg();
            //}
            //else
            //{
            switch (e.Key)
            {
                #region  ísla

            case Key.D1:
            case Key.NumPad1:
                jedna.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

            case Key.D2:
            case Key.NumPad2:
                dva.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

            case Key.D3:
            case Key.NumPad3:
                tri.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

            case Key.D4:
            case Key.NumPad4:
                ctr.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

            case Key.D5:
            case Key.NumPad5:
                pet.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

            case Key.D6:
            case Key.NumPad6:
                sest.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

            case Key.D7:
            case Key.NumPad7:
                sedm.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

            case Key.D8:
            case Key.NumPad8:
                osm.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

            case Key.D9:
            case Key.NumPad9:
                devet.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

            case Key.D0:
            case Key.NumPad0:
                nula.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

            case Key.Decimal:       //,
                tecka.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

                #endregion  ísla

                #region základní znaménka

            case Key.Add:           //+
                plus.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

            case Key.Subtract:      //-
                minus.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

            case Key.Multiply:      //×
                krat.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

            case Key.Divide:        //÷
                deleno.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

                #endregion základní znaménka

            case Key.Back:
                zpet.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

            case Key.Enter:
                ROVNASE.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;

            case Key.Escape:
                buttonClose.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                break;
            }
            //}
        }