Exemplo n.º 1
0
        /// <summary>
        /// 棋譜のファイルへの書き出しコマンド
        /// </summary>
        /// <param name="path"></param>
        /// <param name="type"></param>
        public void KifuWriteCommand(string path, Kifu.KifuFileType type)
        {
            AddCommand(
                () =>
            {
                // ゲーム中でも書き出せる
                // (メニュー上、オフにはなっているが..)

                try
                {
                    // プレイヤー名を棋譜上に反映させる。
                    foreach (var c in All.Colors())
                    {
                        kifuManager.KifuHeader.SetPlayerName(c, GameSetting.PlayerSetting(c).PlayerName);
                    }

                    var content = kifuManager.ToString(type);
                    FileIO.WriteFile(path, content);
                }
                catch (System.Exception e)
                {
                    TheApp.app.MessageShow($"棋譜ファイルの書き出しに失敗しました。\n{e}", MessageShowType.Error);
                }
            });
        }
Exemplo n.º 2
0
 /// <summary>
 /// 現在の局面のクリップボードへの書き出しコマンド
 /// </summary>
 /// <param name="type"></param>
 public void PositionWriteClipboardCommand(Kifu.KifuFileType type)
 {
     AddCommand(() =>
     {
         try
         {
             var content = kifuManager.ToPositionString(type);
             TheApp.app.UIThread(() => SafeClipboard.SetText(content));
         }
         catch (Exception ex)
         {
             TheApp.app.MessageShow($"局面のクリップボードへの書き出しに失敗しました。\r\n{ex.Pretty()}", MessageShowType.Error);
         }
     });
 }
Exemplo n.º 3
0
 /// <summary>
 /// 現在の局面のファイルへの書き出しコマンド
 /// </summary>
 /// <param name="path"></param>
 /// <param name="type"></param>
 public void PositionWriteCommand(string path, Kifu.KifuFileType type)
 {
     AddCommand(
         () =>
     {
         try
         {
             var content = kifuManager.ToPositionString(type);
             FileIO.WriteFile(path, content);
         }
         catch (Exception ex)
         {
             TheApp.app.MessageShow($"棋譜ファイルの書き出しに失敗しました。\r\n{ex.Pretty()}", MessageShowType.Error);
         }
     });
 }
Exemplo n.º 4
0
 /// <summary>
 /// 棋譜のクリップボードへの書き出しコマンド
 /// </summary>
 /// <param name="type"></param>
 public void KifuWriteClipboardCommand(Kifu.KifuFileType type)
 {
     AddCommand(() =>
     {
         try
         {
             var content = kifuManager.ToString(type);
             // Clipboard.SetText() を実行するスレッドは Single Thread Apartment モードに設定されていなければならない
             TheApp.app.UIThread(() => SafeClipboard.SetText(content));
         }
         catch (Exception ex)
         {
             TheApp.app.MessageShow($"棋譜のクリップボードへの書き出しに失敗しました。\r\n{ex.Pretty()}", MessageShowType.Error);
         }
     });
 }
Exemplo n.º 5
0
        public void KifuWriteCommand(string path, Kifu.KifuFileType type)
        {
            AddCommand(
                () =>
            {
                // ゲーム中でも書き出せる
                // (メニュー上、オフにはなっているが..)

                try
                {
                    var content = kifuManager.ToString(type);
                    FileIO.WriteFile(path, content);
                } catch
                {
                    TheApp.app.MessageShow("棋譜ファイルの書き出しに失敗しました。");
                }
            });
        }
Exemplo n.º 6
0
 /// <summary>
 /// 現在の局面のファイルへの書き出しコマンド
 /// </summary>
 /// <param name="path"></param>
 /// <param name="type"></param>
 public void PositionWriteCommand(string path, Kifu.KifuFileType type)
 {
     AddCommand(
         () =>
     {
         try
         {
             var sfen = Position.ToSfen();
             // 経路を消すためにsfen化して代入しなおして書き出す
             var kifu = new KifuManager();
             kifu.FromString($"sfen {sfen}");
             var content = kifu.ToString(type);
             FileIO.WriteFile(path, content);
         }
         catch
         {
             TheApp.app.MessageShow("棋譜ファイルの書き出しに失敗しました。");
         }
     });
 }
Exemplo n.º 7
0
        /// <summary>
        /// 現在の局面のクリップボードへの書き出しコマンド
        /// </summary>
        /// <param name="type"></param>
        public void PositionWriteClipboardCommand(Kifu.KifuFileType type)
        {
            AddCommand(() =>
            {
                try
                {
                    // プレイヤー名を棋譜上に反映させる。
                    foreach (var c in All.Colors())
                    {
                        kifuManager.KifuHeader.SetPlayerName(c, GameSetting.PlayerSetting(c).PlayerName);
                    }

                    var content = kifuManager.ToPositionString(type);
                    TheApp.app.UIThread(() => System.Windows.Forms.Clipboard.SetText(content));
                }
                catch (System.Exception e)
                {
                    TheApp.app.MessageShow($"局面のクリップボードへの書き出しに失敗しました。\n{e}", MessageShowType.Error);
                }
            });
        }
Exemplo n.º 8
0
        /// <summary>
        /// 棋譜のファイルへの書き出しコマンド
        /// </summary>
        /// <param name="path"></param>
        /// <param name="type"></param>
        public void KifuWriteCommand(string path, Kifu.KifuFileType type)
        {
            AddCommand(
                () =>
            {
                // ゲーム中でも書き出せる
                // (メニュー上、オフにはなっているが..)

                try
                {
                    var content = kifuManager.ToString(type);
                    FileIO.WriteFile(path, content);

                    // 棋譜が綺麗になった扱いにする。
                    KifuDirty = false;
                }
                catch (Exception ex)
                {
                    TheApp.app.MessageShow($"棋譜ファイルの書き出しに失敗しました。\r\n{ex.Pretty()}", MessageShowType.Error);
                }
            });
        }
Exemplo n.º 9
0
        /// <summary>
        /// 棋譜のクリップボードへの書き出しコマンド
        /// </summary>
        /// <param name="type"></param>
        public void KifuWriteClipboardCommand(Kifu.KifuFileType type)
        {
            AddCommand(() =>
            {
                try
                {
                    // プレイヤー名を棋譜上に反映させる。
                    foreach (var c in All.Colors())
                    {
                        kifuManager.KifuHeader.SetPlayerName(c, GameSetting.PlayerSetting(c).PlayerName);
                    }

                    var content = kifuManager.ToString(type);
                    // Clipboard.SetText() を実行するスレッドは Single Thread Apartment モードに設定されていなければならない
                    TheApp.app.UIThread(() => System.Windows.Forms.Clipboard.SetText(content));
                }
                catch (System.Exception e)
                {
                    TheApp.app.MessageShow($"棋譜のクリップボードへの書き出しに失敗しました。\n{e}", MessageShowType.Error);
                }
            });
        }