∵ なぜならば

映画とかネットとかパソコンとかコミックとか音楽とか……

1.1.2 アップしました

2017-05-25 22:53:53 | NanaTerry
ver 1.1.2

・ノードを開いた時自動スクロールしないオプション(「ツリー」「3」)
・表示メニューからメニューバーを完全非表示出来るようにした
・保存ダイアログ及び開くダイアログのフィルタ(ファイルの種類)を終了時にも記憶する(その他 2)
・エディタの背景色をノードの文字背景色に合わせる(エディタ 他)
・「テキスト形式で貼り付け」を更に別の手法に変えてみる(特殊)
・HTML エクスポートで行間設定(100、120,150%)を選択できるようにした
・HTML エクスポートで画像の形式を Jpg か PNG かを選択できるようにした
・ノード毎に別個のファイルとしてエクスポート
・フォーカスノード以下のエクスポート

・ツールバーの"標準"を非表示にしている時、ノード削除してもタイトルバーに*が付かなかったのを修正
・ツリー上でノード名を変えてもタイトルバーに反映されなくなっていたのを修正
112
112t

「ノード毎に別個のファイルとしてエクスポート」の仕様説明

「ノード毎に別個のファイルとしてエクスポート」の仕様説明

2017-05-25 22:52:54 | NanaTerry
ノードをフォルダまたはファイルに書き出すにあたって同名ファイル(フォルダ)が同じ階層に存在した場合普通なら「ファイル名~01」とかにするのですが
エクスプローラなどのファイラーで閲覧したときに順序が変わってしまうので先頭にゼロ連番を付加します





ノードに子供はある → フォルダとなる → しかし文書も持っている(readme.nna の「NanaTreeの機能」)場合
「002NanaTreeの機能」フォルダの中に「000NanaTreeの機能.txt」が作られる事になります



上記と反対に
ノードに子供が無く文書がある場合ファイル(txt or rtf)になりますが兄弟ノードが存在する場合エクスプローラの性質上フォルダ → ファイルの順になってしまいます
なので
この場合もフォルダ内に「フォルダ名.txt」を作成する事になります





親の違う子ノードを同時に選択する場合設定の
「複数ノード選択時に、同一階層以外のノードも選択可能にする」にチェックを入れる必要があります



頭ゼロ三桁とか足りないという方は一旦 Nana を終了して
NanaTerry.ini をメモ帳や他のエディタで開き
ExportSeparatesMethod.PreZeroCount=3
を 4 とか 5 に変更してください


順序なんて気にしない同名ノード名など存在しないナンバリング必要ないという方は申し訳ありませんが処理後
他のリネームソフトなどで除去してください

重くなる件の追記

2017-05-03 16:18:17 | NanaTerry
1ノードの内容はそれほどでもないけどファイル全体が大きい場合の回避策としては
最初に読み込んだときノード毎に内容を記憶させているのをやめてノード内容の最初と最後のインデックス(行ではなくバイト)だけにする
ノードを開くときは TStringList ではなくインデックスを元に TStream で読む
変更があったときだけ TemporaryFile に保存しておくことで速度を犠牲にして安定度を上げる
オプションでファイルサイズでこの処理にするかどうかを分けるようにする
そんな事も考えていたけどその効果差異を比べる環境がないので試してみる事も諦めた

いまちょっと
ノード数 1 でファイルサイズが 5,027,735 Byte の .nna を作って Nanami さん(読み込むだけのソフト)で読んだら読み込み時間は同じくらいなんだけどクルクルが起こらない
オリジナル(NanaTree)では「リンクタグでカーソルを変化させない」設定がないので検証は不可だけど
ななみさんは極力ダイエットしただけのものなのでやはり何か私が入れている動作が原因の一つかも知れない

長文になると重くなる件

2017-05-03 10:18:27 | NanaTerry
さて本日からGWに入りまず
溜まっていた案件を少しずつ片付けていくのですがここで表題の件をまとめておきます

長文になると重くなるのはプレーンテキストモードでは出ないクルクルを見る限り
おそらくスクロール時などに内部でキャレット位置などを検出する際にWindowsAPI を使用しているのが原因だと思う
リッチエディット関連の API で位置を割り出すのに「先頭から何文字目」という答えが返ってくる
ここを現在表示されている「先頭から何文字目」に変更すればたとえ本文に何万字あろうとも瞬時に出るようになるのはわかっているけど文字の描画自体を JEDI コンポーネントおよび Windows コンポーネントに任せているのでままならない

ではその API を出来るだけ呼び出さないようにとマウスやスクロール関連のイベントを調べてみるが出てこない
オプションの「URL をタグ無しでリンク状態にする」を外しても変わらない
結局ここで頓挫したまま

また「特殊文字表示」をオンにすると極端に遅くなる(環境依存かも知れませんがウチでは確認できない)のは
JEDI のリッチエディットコンポーネントを Nana さんがカスタマイズして描画(ペイントイベント)時に書き加えているのですがこれまた前述の API が呼ばれるので(ry

もうひとつ片付けたい大きな問題は「画像などを多く貼り付けるとファイルサイズが異常に大きくなるのが原因でさらに遅くなる」です
これはスレでもご指摘いただいたように JPEG であれ PNG であれ貼り付けるときにビットマップ変換しているのが原因で
リッチエディット自体 JPEG も PNG もサポートしているのだけれどワードパッドでも読み込めるような形式で最小限のサイズで貼り付ける方法が(出来るのかどうかも)まだわからないからです
ウチに古い Microsoft Word があって右クリックから「形式を指定して云々」で Jpeg に出来るのですが保存したらメタ情報も一緒に入っているからサイズがさらにふくれる Excel ならサイズは小さくなるけどテキスト保存できないので解析できない
ネットにある Jpeg を RTF に埋め込む方法ではヘッダ書いて画像を埋め込むとしか書いてないんだけどそれだけではワードパッドでは読み込めない
最小限のサイズで画像を埋め込める方法さえあれば解決するんだけれども

この問題はいつもネットをさまよって途中で飽きてうたた寝して終わる(T▽T)