/// <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); } }); }
/// <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); } }); }
/// <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); } }); }
/// <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); } }); }
public void KifuWriteCommand(string path, Kifu.KifuFileType type) { AddCommand( () => { // ゲーム中でも書き出せる // (メニュー上、オフにはなっているが..) try { var content = kifuManager.ToString(type); FileIO.WriteFile(path, content); } catch { TheApp.app.MessageShow("棋譜ファイルの書き出しに失敗しました。"); } }); }
/// <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("棋譜ファイルの書き出しに失敗しました。"); } }); }
/// <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); } }); }
/// <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); } }); }
/// <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); } }); }