protected async override void Reload(bool back) { NextButton.Enabled = false; CountBar.Value = 0; if (back) { notConfirm = true; Previous(); } else { notConfirm = false; cancel = false; previous = false; CountBar.Maximum = MFFD.Solver.Maxeval; Progress = new Progress <ProgressNotification>(); Progress.ProgressChanged += Progress_ProgressChanged; TMF_Save = MFFD.MagicFormula.Copy(); using (CancellationTokenSource = new CancellationTokenSource()) { try { await Task.Run(() => MFFD.Run(CancellationTokenSource, Progress), CancellationTokenSource.Token); } catch (Exception e) { // キャンセルされた場合 MFFD.SetInitialValue(TMF_Save); if (e is OperationCanceledException) { MessageBox.Show("キャンセル"); } else { MessageBox.Show("失敗\n" + e.Message); notConfirm = true; Previous(); return; } if (cancel) { CancelButton_Click(this, new EventArgs()); return; } if (previous) { notConfirm = true; Previous(); return; } } } } }
override protected bool OnNext() { if (MFFD.Initialized && !NowValueRB.Checked) { DialogResult result = MessageBox.Show("現在の値は変更されます。よろしいですか?", "確認", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2); //何が選択されたか調べる if (result == DialogResult.Yes) { //何もしない } else if (result == DialogResult.Cancel) { return(false); } } if (LoadDefaultRB.Checked) { var mf = new TireMagicFormula(MFFD.MagicFormula.TireName); /* * mf.FX.NormalizeOffsetParam = new MagicFormulaArguments(0, 0, 0, 0, 0, 0); * mf.FX.NormalizeScaleParam = new MagicFormulaArguments(1, 1, 1, 1, 1, 1); */ mf.FX.NormalizeOffsetParam = new MagicFormulaArguments(0, 0, 0, 0, 40, 53.1); mf.FX.NormalizeScaleParam = new MagicFormulaArguments(13, 1, 1600, 4, 50, 16); var param = mf.FY.Parameters; param[0] = 1.4; param[1] = 2200; param[2] = -800; param[3] = 0.05; param[4] = 3; param[5] = -1.8; param[6] = 0; param[7] = -6000; param[8] = 1; param[9] = 2; param[10] = 1; param[11] = 0.01; param[12] = 0.5; param[13] = 0.01; param[14] = 0; param[15] = -1; param[16] = -0.8; param[17] = 0.01; param[18] = 0.01; param[19] = 0.01; param[20] = 0; param[21] = 0; param[22] = 0; param[23] = 0; MFFD.SetInitialValue(mf); return(true); } else if (LoadFromFileRB.Checked) { if (System.IO.File.Exists(FileNameTB.Text)) { try { using (System.IO.FileStream stream = new System.IO.FileStream(FileNameTB.Text, System.IO.FileMode.Open)) { var mf = TireMagicFormula.Load(stream); MFFD.SetInitialValue(mf); } return(true); } catch (Exception e) { Log.Output(e.Message); MessageBox.Show("読み込みに失敗しました"); return(false); } } else { MessageBox.Show("ファイルがありません"); return(false); } } else if (NowValueRB.Checked) { MFFD.SetInitialValue(MFFD.MagicFormula); return(true); } else if (LoadFromOtherRB.Checked) { var node = MFLoadedCB.SelectedItem as ProjectTree.Node_MagicFormula; if (node != null) { MFFD.SetInitialValue(node.MFFD.MagicFormula.Copy()); return(true); } } return(false); }
public void FittingCancel() { CancellationTokenSource.Cancel(); MFFD.SetInitialValue(TMF_Save); }