public static HistoryData createHistory(ProblemInfo pi, int level, Bitmap imgProblem, Bitmap imgAnswer) { long lStamp = DateTimeToSec.Now.getDateTime(); string dir; for (; ;) { dir = Path.Combine(Gnd.i.historyDir, "" + lStamp); if (Directory.Exists(dir) == false) { break; } lStamp++; } Directory.CreateDirectory(dir); #if true { XNode root = new XNode("Root"); root.children.Add(new XNode("PIName", pi.getName())); root.children.Add(new XNode("Level", "" + level)); root.save(Path.Combine(dir, "Data.xml")); } #else // old File.WriteAllText(Path.Combine(dir, "PIName.dat"), pi.getName(), StringTools.ENCODING_SJIS); File.WriteAllText(Path.Combine(dir, "Level.dat"), "" + level, StringTools.ENCODING_SJIS); #endif imgProblem.Save(Path.Combine(dir, "Problem.png"), ImageFormat.Png); imgAnswer.Save(Path.Combine(dir, "Answer.png"), ImageFormat.Png); return(new HistoryData(dir)); }
private HistoryData _historyData; // null == 作成未完了 private MkAndPrintWin(ProblemInfo problemInfo, int level, HistoryData historyData) { _problemInfo = problemInfo; _level = level; _historyData = historyData; InitializeComponent(); this.lblProblemTitle.Text = "印刷する問題:" + _problemInfo.getName() + " , 難易度:" + Utils.levelToString(_level); this.lblMkStatus.Text = "作成中..."; this.cmbPrinterName.Items.Clear(); foreach (string name in ImagePrinter.getPrinterNames()) { this.cmbPrinterName.Items.Add(name); } this.cmbPrinterName.SelectedIndex = 0; this.cmbPaperSizeName.Items.Clear(); foreach (string name in ImagePrinter.getPaperSizeNames()) { this.cmbPaperSizeName.Items.Add(name); } this.cmbPaperSizeName.SelectedIndex = 0; // 前回のプリンタ選択を復元 { string name = Gnd.i.lastPrinterName; if (name != "") { int index = Utils.getIndex(cmbPrinterName, name); if (index != -1) { cmbPrinterName.SelectedIndex = index; cbUseDefaultPrinter.Checked = false; } } } // 前回の用紙サイズ選択を復元 { string name = Gnd.i.lastPaperSizeName; if (name != "") { int index = Utils.getIndex(cmbPaperSizeName, name); if (index != -1) { cmbPaperSizeName.SelectedIndex = index; cbUseDefaultPaperSize.Checked = false; } } } // 前回のマージンを復元 { LTRB margin = Gnd.i.lastMargin; if (margin != null) { marginL.Text = "" + margin.l; marginT.Text = "" + margin.t; marginR.Text = "" + margin.r; marginB.Text = "" + margin.b; cbUseDefaultMargin.Checked = false; } else { marginL.Text = "" + 100; marginT.Text = "" + 100; marginR.Text = "" + 100; marginB.Text = "" + 100; } } cbPrintProblem.Checked = Gnd.i.lastPrintProblem; cbPrintAnswer.Checked = Gnd.i.lastPrintAnswer; refreshUI(); if (_historyData != null) { historyDataCreated(); } }