public static extern bool DeleteObject(IntPtr hObject);                                 //!< gdi32.dllのDeleteObjectメソッドの使用を宣言する。

        ////////////////////////////////////////////////////////////////////////////////
        ///	@brief			コンストラクタ
        ///	@fn				MainWindow()
        ///	@return			ありません
        ///	@author			Yuta Yoshinaga
        ///	@date			2017.10.20
        ///
        ////////////////////////////////////////////////////////////////////////////////
        public MainWindow()
        {
            InitializeComponent();
            oldSize.Width  = 0;
            oldSize.Height = 0;

            System.IO.Directory.CreateDirectory(System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\Y.Y Magic\\Reversi4colorWpf");
            string setPath = System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\Y.Y Magic\\Reversi4colorWpf\\" + "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("MainWindow(1) : " + ex.Message);
                System.Console.WriteLine("MainWindow(1) : " + ex.StackTrace);
            }
        }
        ////////////////////////////////////////////////////////////////////////////////
        ///	@brief			セッティングクリック
        ///	@fn				void button2_Click(object sender, RoutedEventArgs e)
        ///	@param[in]		object sender
        ///	@param[in]		RoutedEventArgs e
        ///	@return			ありません
        ///	@author			Yuta Yoshinaga
        ///	@date			2017.10.20
        ///
        ////////////////////////////////////////////////////////////////////////////////
        private void btn_setting_Click(object sender, RoutedEventArgs e)
        {
            System.IO.Directory.CreateDirectory(System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\Y.Y Magic\\Reversi4colorWpf");
            string setPath = System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\Y.Y Magic\\Reversi4colorWpf\\" + "AppSetting.xml";

            SettingWindow form = new SettingWindow(this.m_AppSettings);

            form.ShowDialog();

            this.m_AppSettings = form.mSetting;
            SaveSettingXml(setPath, ref this.m_AppSettings);

            // *** フォームが必要なくなったところで、Disposeを呼び出す *** //
            this.m_ReversiPlay.mSetting = this.m_AppSettings;
            this.appInit();
            Task newTask = new Task(() => { System.Threading.Thread.Sleep(500); this.m_ReversiPlay.reset(); });

            newTask.Start();
        }
        ////////////////////////////////////////////////////////////////////////////////
        ///	@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			設定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);
        }
Пример #5
0
 ////////////////////////////////////////////////////////////////////////////////
 ///	@brief			コンストラクタ
 ///	@fn				SettingWindow(ReversiSetting mSetting)
 ///	@return			ありません
 ///	@author			Yuta Yoshinaga
 ///	@date			2017.10.20
 ///
 ////////////////////////////////////////////////////////////////////////////////
 public SettingWindow(ReversiSetting mSetting)
 {
     InitializeComponent();
     this.mSetting = mSetting;
     this.reflectSettingForm();
 }