private Size oldSize; //!< リサイズ前のサイズ //////////////////////////////////////////////////////////////////////////////// /// @brief コンストラクタ /// @fn FormMain() /// @return ありません /// @author Yuta Yoshinaga /// @date 2017.10.20 /// //////////////////////////////////////////////////////////////////////////////// public Reversi() { InitializeComponent(); oldSize.Width = 0; oldSize.Height = 0; System.IO.Directory.CreateDirectory(System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\Y.Y Magic\\Reversi4ColorForm"); string setPath = System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\Y.Y Magic\\Reversi4ColorForm\\" + "AppSetting.xml"; try { this.m_AppSettings = this.LoadSettingXml(setPath); if (this.m_AppSettings == null) { this.m_AppSettings = new ReversiSetting(); this.SaveSettingXml(setPath, ref this.m_AppSettings); } this.m_ReversiPlay = new ReversiPlay(); this.m_ReversiPlay.mSetting = this.m_AppSettings; this.m_ReversiPlay.viewMsgDlg = this.ViewMsgDlg; this.m_ReversiPlay.drawSingle = this.DrawSingle; this.m_ReversiPlay.curColMsg = this.CurColMsg; this.m_ReversiPlay.curStsMsg = this.CurStsMsg; this.appInit(); Task newTask = new Task(() => { this.m_ReversiPlay.reset(); }); newTask.Start(); } catch (Exception ex) { System.Console.WriteLine("FormMain(1) : " + ex.Message); System.Console.WriteLine("FormMain(1) : " + ex.StackTrace); } }
//////////////////////////////////////////////////////////////////////////////// /// @brief セッティングクリック /// @fn void button2_Click(object sender, EventArgs e) /// @param[in] object sender /// @param[in] EventArgs e /// @return ありません /// @author Yuta Yoshinaga /// @date 2017.10.20 /// //////////////////////////////////////////////////////////////////////////////// private void button2_Click(object sender, EventArgs e) { System.IO.Directory.CreateDirectory(System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\Y.Y Magic\\Reversi4ColorForm"); string setPath = System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\Y.Y Magic\\Reversi4ColorForm\\" + "AppSetting.xml"; SettingForm form = new SettingForm(this.m_AppSettings); // *** オーナーウィンドウにthisを指定する *** // form.ShowDialog(this); this.m_AppSettings = form.mSetting; SaveSettingXml(setPath, ref this.m_AppSettings); // *** フォームが必要なくなったところで、Disposeを呼び出す *** // form.Dispose(); this.m_ReversiPlay.mSetting = this.m_AppSettings; this.appInit(); Task newTask = new Task(() => { this.m_ReversiPlay.reset(); }); newTask.Start(); }
//////////////////////////////////////////////////////////////////////////////// /// @brief 設定XMLファイルロード /// @fn ReversiSetting LoadSettingXml(string path) /// @param[in] string path 設定XMLファイルパス /// @return ReversiSettingオブジェクトインスタンス /// @author Yuta Yoshinaga /// @date 2017.10.20 /// //////////////////////////////////////////////////////////////////////////////// public ReversiSetting LoadSettingXml(string path) { ReversiSetting ret = null; try { // *** XMLをReversiSettingオブジェクトに読み込む *** // XmlSerializer serializer = new XmlSerializer(typeof(ReversiSetting)); ret = new ReversiSetting(); FileStream fsr = new FileStream(path, FileMode.Open); // *** XMLファイルを読み込み、逆シリアル化(復元)する *** // ret = (ReversiSetting)serializer.Deserialize(fsr); fsr.Close(); } catch (Exception ex) { System.Console.WriteLine("LoadSettingXml() : " + ex.Message); System.Console.WriteLine("LoadSettingXml() : " + ex.StackTrace); ret = null; } return(ret); }
//////////////////////////////////////////////////////////////////////////////// /// @brief 設定XMLファイルセーブ /// @fn int SaveSettingXml(string path,ReversiSetting appSet) /// @param[in] string path 設定XMLファイルパス /// @param[out] ReversiSetting appSet 設定XMLファイルオブジェクト /// @return 0 : 成功 それ以外 : 失敗 /// @author Yuta Yoshinaga /// @date 2017.10.20 /// //////////////////////////////////////////////////////////////////////////////// public int SaveSettingXml(string path, ref ReversiSetting appSet) { int ret = 0; try { // *** XMLをReversiSettingオブジェクトに読み込む *** // XmlSerializer serializer = new XmlSerializer(typeof(ReversiSetting)); // *** カレントディレクトリに"AppSetting.xml"というファイルで書き出す *** // FileStream fsw = new FileStream(path, FileMode.Create); // *** オブジェクトをシリアル化してXMLファイルに書き込む *** // serializer.Serialize(fsw, appSet); fsw.Close(); } catch (Exception exl) { System.Console.WriteLine("SaveSettingXml() : " + exl.Message); System.Console.WriteLine("SaveSettingXml() : " + exl.StackTrace); ret = -1; } return(ret); }
//////////////////////////////////////////////////////////////////////////////// /// @brief コンストラクタ /// @fn SettingForm(ReversiSetting mSetting) /// @return ありません /// @author Yuta Yoshinaga /// @date 2017.10.20 /// //////////////////////////////////////////////////////////////////////////////// public SettingForm(ReversiSetting mSetting) { InitializeComponent(); this.mSetting = mSetting; this.reflectSettingForm(); }