/// <summary>
 /// Очистить калькулятор
 /// </summary>
 private void Clear()
 {
     lblResult.Content       = "Не посчитанно";
     input                   = "";
     FirstReal.Content       = "";
     FirstImaginary.Content  = "";
     SecondReal.Content      = "";
     SecondImaginary.Content = "";
     CurrentSelectedField    = SelectedField.FirstReal;
     resultComplex           = null;
     stepLabel.Content       = "1";
 }
Esempio n. 2
0
        protected override Expression VisitNew(NewExpression expression)
        {
            if (_target != null)
            {
                return(base.VisitNew(expression));
            }

            _target = new TargetObject(expression.Type);

            var parameters = expression.Constructor.GetParameters();

            for (var i = 0; i < parameters.Length; i++)
            {
                _currentField = _target.StartBinding(parameters[i].Name);
                Visit(expression.Arguments[i]);
            }

            return(expression);
        }
    public TranslatedButtonComponentSolver(TwitchModule module) :
        base(module)
    {
        var component = module.BombComponent.GetComponent(ComponentType);

        _button = (KMSelectable)ButtonField.GetValue(component);
        ModInfo = ComponentSolverFactory.GetModuleInfo(GetModuleType(), "!{0} tap [tap the button] | !{0} hold [hold the button] | !{0} release 7 [release when the digit shows 7]").Clone();
        Selectable selectable = module.BombComponent.GetComponent <Selectable>();

        selectable.OnCancel += () => { SelectedField.SetValue(component, false); return(true); };

        LanguageCode = TranslatedModuleHelper.GetLanguageCode(component, ComponentType);
        ModInfo.moduleDisplayName = $"Big Button Translated{TranslatedModuleHelper.GetModuleDisplayNameAddon(component, ComponentType)}";
        Module.HeaderText         = ModInfo.moduleDisplayName;

        var mat = (Material)StripMaterialField.GetValue(component);

        StripMaterialField.SetValue(component, Object.Instantiate(mat));
    }
Esempio n. 4
0
        private void ShowFieldMenu(ReportFieldListBox sender, ReportField reportField)
        {
            _moveToColumnLabelsMenuItem.Enabled = sender.FieldType != ReportFieldType.Column;
            _moveToRowLabelsMenuItem.Enabled    = sender.FieldType != ReportFieldType.Row;
            _moveToValuesMenuItem.Enabled       = sender.FieldType != ReportFieldType.Value;
            _aggregateMenuItem.Enabled          = sender.FieldType == ReportFieldType.Value;

            int index = sender.Items.IndexOf(reportField);

            _moveUpMenuItem.Enabled          = index > 0;
            _moveToBeginningMenuItem.Enabled = index > 0;
            _moveDownMenuItem.Enabled        = index < sender.Items.Count - 1;
            _moveToEndMenuItem.Enabled       = index < sender.Items.Count - 1;

            foreach (ToolStripMenuItem menuItem in _aggregateMenuItem.DropDownItems)
            {
                menuItem.Checked = (ReportFieldTransform)menuItem.Tag == reportField.Transform;
            }

            var bounds = sender.GetItemRectangle(index);

            _selectedField = new SelectedField(sender, reportField);
            _fieldContextMenu.Show(sender, bounds.Left, bounds.Bottom + 1);
        }
Esempio n. 5
0
        protected override MemberBinding VisitMemberBinding(MemberBinding node)
        {
            _currentField = _target.StartBinding(node.Member.Name);

            return(base.VisitMemberBinding(node));
        }
        /// <summary>
        /// Обработчик кнопок
        /// </summary>
        /// <param name="sender">Нажимаемая кнопка</param>
        /// <param name="e">Информация о собитии</param>
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var btn = (Button)sender;

            try
            {
                switch (btn.Tag)
                {
                case "divBtn":     //Если нажата кнопка деления
                    GetNumbers();
                    resultComplex           = firstComplex / secondComplex;
                    resultComplex.real      = Math.Round(resultComplex.real, 8);
                    resultComplex.imaginary = Math.Round(resultComplex.imaginary, 8);
                    lblResult.Content       = resultComplex.ToString();
                    break;

                case "mulBtn":     //Если нажата кнопка умножения
                    GetNumbers();
                    resultComplex     = firstComplex * secondComplex;
                    lblResult.Content = resultComplex.ToString();
                    break;

                case "addBtn":     //Если нажата кнопка сложения
                    GetNumbers();
                    resultComplex     = firstComplex + secondComplex;
                    lblResult.Content = resultComplex.ToString();
                    break;

                case "subBtn":     //Если нажата кнопка вычитания
                    GetNumbers();
                    resultComplex     = firstComplex - secondComplex;
                    lblResult.Content = resultComplex.ToString();
                    break;

                case "sqrBtn":     //Если нажата кнопка возведения в 3 степень
                    GetNumbers();
                    firstComplex      = Complex.sqr(firstComplex);
                    secondComplex     = Complex.sqr(secondComplex);
                    lblResult.Content = firstComplex + "\r\n" + secondComplex;
                    break;

                case "percentBtn":     //Нажата кнопка нахождения процента
                    GetNumbers();
                    Complex divComplex = new Complex(0.01, 0);
                    firstComplex = firstComplex * divComplex;
                    MessageBox.Show(firstComplex.ToString(), "1 процент от первого числа");
                    resultComplex     = (firstComplex * secondComplex);
                    lblResult.Content = resultComplex;

                    break;

                case "clrBtn":     //Кнопка отчистки
                    Clear();
                    break;

                case "switchBtn":     //Кнопка перехода
                    switch (CurrentSelectedField)
                    {
                    case SelectedField.FirstReal:
                        CurrentSelectedField = SelectedField.FirstImaginary;
                        stepLabel.Content    = "2";
                        break;

                    case SelectedField.FirstImaginary:
                        CurrentSelectedField = SelectedField.SecondReal;
                        stepLabel.Content    = "3";
                        break;

                    case SelectedField.SecondReal:
                        CurrentSelectedField = SelectedField.SecondImaginary;
                        stepLabel.Content    = "4";
                        break;

                    case SelectedField.SecondImaginary:
                        break;
                    }
                    input = "";
                    break;

                case "1divxBtn":     //Кнопка 1/x
                    if (resultComplex == null)
                    {
                        if (SecondReal.Content.ToString() == "" && SecondImaginary.Content.ToString() == "")
                        {
                            resultComplex = (new Complex(1, 0) / GetNumbers(FirstReal.Content.ToString(), FirstImaginary.Content.ToString()));
                        }
                        else
                        {
                            resultComplex = (new Complex(1, 0) / GetNumbers(SecondReal.Content.ToString(), SecondImaginary.Content.ToString()));
                        }
                    }
                    else
                    {
                        resultComplex = (new Complex(1, 0) / resultComplex);
                    }
                    lblResult.Content = resultComplex;
                    break;

                case "xxBtn":     //Кнопка квадрата
                    if (resultComplex == null)
                    {
                        if (SecondReal.Content.ToString() == "" && SecondImaginary.Content.ToString() == "")
                        {
                            Complex tmp = GetNumbers(FirstReal.Content.ToString(), FirstImaginary.Content.ToString());
                            resultComplex = tmp * tmp;
                        }
                        else
                        {
                            Complex tmp = GetNumbers(SecondReal.Content.ToString(), SecondImaginary.Content.ToString());
                            resultComplex = tmp * tmp;
                        }
                    }
                    else
                    {
                        resultComplex = resultComplex * resultComplex;
                    }
                    lblResult.Content = resultComplex;
                    break;

                case "changesignBtn":     //Кнопка смены знака
                    try
                    {
                        switch (CurrentSelectedField)
                        {
                        case SelectedField.FirstReal:
                            if (FirstReal.Content.ToString()[0] != '-')
                            {
                                FirstReal.Content = '-' + FirstReal.Content.ToString();
                            }
                            else
                            {
                                FirstReal.Content = FirstReal.Content.ToString().Remove(0, 1);
                            }
                            input = FirstReal.Content.ToString();
                            break;

                        case SelectedField.FirstImaginary:
                            if (FirstImaginary.Content.ToString()[0] != '-')
                            {
                                FirstImaginary.Content = '-' + FirstImaginary.Content.ToString();
                            }
                            else
                            {
                                FirstImaginary.Content = FirstImaginary.Content.ToString().Remove(0, 1);
                            }
                            input = FirstImaginary.Content.ToString();

                            break;

                        case SelectedField.SecondReal:
                            if (SecondReal.Content.ToString()[0] != '-')
                            {
                                SecondReal.Content = '-' + SecondReal.Content.ToString();
                            }
                            else
                            {
                                SecondReal.Content = SecondReal.Content.ToString().Remove(0, 1);
                            }
                            input = SecondReal.Content.ToString();

                            break;

                        case SelectedField.SecondImaginary:
                            if (SecondImaginary.Content.ToString()[0] != '-')
                            {
                                SecondImaginary.Content = '-' + SecondImaginary.Content.ToString();
                            }
                            else
                            {
                                SecondImaginary.Content = SecondImaginary.Content.ToString().Remove(0, 1);
                            }
                            input = SecondImaginary.Content.ToString();

                            break;
                        }
                    }
                    catch (IndexOutOfRangeException)
                    {
                    }
                    break;

                case "IsNumber":     //Обработка ввода чисел
                    if (btn.Content.ToString() == ",")
                    {
                        if (!input.Contains(","))
                        {
                            input += btn.Content;
                        }
                    }
                    else
                    {
                        input += btn.Content;
                    }
                    switch (CurrentSelectedField)
                    {
                    case SelectedField.FirstReal:
                        FirstReal.Content = input;
                        break;

                    case SelectedField.FirstImaginary:
                        FirstImaginary.Content = input;
                        break;

                    case SelectedField.SecondReal:
                        SecondReal.Content = input;
                        break;

                    case SelectedField.SecondImaginary:
                        SecondImaginary.Content = input;
                        break;
                    }
                    break;

                case "Memory":     //Работа с памятью калькулятора
                    switch (btn.Content.ToString())
                    {
                    case "MS":
                        SaveToMemory();
                        break;

                    case "MC":
                        memoryComplex = null;
                        break;

                    case "MR":
                        ReadFromMemory();
                        break;

                    case "M+":
                        if (resultComplex != null)
                        {
                            resultComplex    += memoryComplex;
                            lblResult.Content = resultComplex;
                        }
                        break;

                    case "M-":
                        if (resultComplex != null)
                        {
                            resultComplex    -= memoryComplex;
                            lblResult.Content = resultComplex;
                        }
                        break;
                    }
                    break;
                }
            }
            catch (FormatException)
            {
                MessageBox.Show("Заполните корректно все поля");
                Clear();
            }
        }