/// <summary> /// Очистить калькулятор /// </summary> private void Clear() { lblResult.Content = "Не посчитанно"; input = ""; FirstReal.Content = ""; FirstImaginary.Content = ""; SecondReal.Content = ""; SecondImaginary.Content = ""; CurrentSelectedField = SelectedField.FirstReal; resultComplex = null; stepLabel.Content = "1"; }
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)); }
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); }
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(); } }