∵ なぜならば

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

これはブログトップ固定記事でっすぃ~♪ヘ(^^ヘ)(ノ^^)ノヘ(^^ヘ)(ノ^^)ノ♪

2027-12-16 21:48:45 | NanaTerry
NanaTerry は現役のアウトラインプロセッサです
ダウンロードはこちらで最新版を


覚え書きを項目毎にまとめたり
小説やゲームシナリオのプロットを整理したり
使い方はあなた次第で無限に広がります



エディタ部分は Windows リッチエディタベースで画像文字装飾も可能
ツリービューで項目を分けて情報の整理
ツリーノードごとにアイコンを設定出来ます


全ツリーノードからキーワード検索すれば探したいものがすぐに見つかります


複数の環境設定で多重起動すれば常に同じ場所それぞれの設定で起ち上げることが出来ます
画像は必要ないという方のためにプレーンテキストモード(α版)も用意しています
プレーンエディタでは背景に壁紙も設定出来ます


ノードリンク / アンカーリンク / シャドウリンク / ポップアップリンク
ひたすら情報収集するためのクリップボード監視(自動貼り付け)
マクロ作成で作業の自動化 / 簡易化
外部アプリを登録して連携作業
ノードの別窓表示で参照しながらの編集
ナナタブ(仮)で多重起動管理


開発者も忘れるほどの設定項目

娘 ◆rBYKKypTPeak 作成の詳細ヘルプ

ウェブ小説を執筆されている方のために「カクヨム記法」「小説家になろう記法」での傍点変換およびルビ表記入力支援

5ちゃんねる専用スレッドか当ブログで質問すれば反応が返ってきます
新規要望も基本ポリシーに反しない内容で私の力量と時間が許す限り考えていきます
バグ報告は優先的に調査していきます
急ぎで困っているときは Twitter で「NanaTerry」という言葉を含めてツイートしてもらえば私か娘が召還されます


ダウンロードはこちらで最新版を
SkyDrive(OneDrive) は右上の「並び替え」を「更新日」にその右にある ←こんなアイコンをクリックして詳細ビューにすると日付が出てさらにわかりやすいです



NanaTerry について

【NanaTerry】最初にすること

縦書き版 NanaTerry が Winodws10 で日本語が打てない件について

Windows10 で NanaTerry のフォントがにじむ

【NanaTerry】画像ファイルを多用する場合

もしもファイルサイズが大きくなりすぎて .nna が読み込めなくなったり不安定になってしまった場合
コメント (201)
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NanaTerry について

2027-12-01 11:00:41 | NanaTerry
ということで、同梱してます TeReadme.txt にも書いていることですが

長文編集の際重いと感じた時
設定「表示」~「総字数のカウント」「~行くらいでやめる」に適当な数値を入れてみてください
設定「表示」~「リンクタグでカーソルを変化させない」にチェックしてみてください

ツールバーとかブックマークウィンドウがいなくなってしまった時
まず、本体(エディタ)の後ろに隠れていないか覗いてみてください
それでもいない時は画面の外に家出したか、光学迷彩を使っているかです
一度終了してから
Ctrl + Shift を押しながら起動して「起動時問い合わせダイアログ」を試してみてください

バックアップと自動保存
こちらを参照してください

XP での .nna 関連づけがうまくいかない場合
ケンさんから情報を頂きました→こちらのコメント欄です
それでも上手くいかない方へ(tera さんより)
http://www.pasoble.jp/windows/7/08843.html


参考リンク
私、「テンプレ」っていう記事を過去に書いています
要望、質問などを書き込む際に参考にしてください

質問要望バグ報告などはこちら
5ちゃんねる NanaTerry(アウトラインプロセッサ) Part4
https://egg.5ch.net/test/read.cgi/software/1560074001/

長い文章を書く人のためにアウトラインプロセッサの基本をまとめてみた
https://readingmonkey.blog.fc2.com/blog-entry-750.html
無料で使えるおすすめのアウトラインプロセッサー11選【小説家・ライター向け】 – ライカツ
https://lifelikewriter.com/free-outline-editor/

紹介記事
窓の杜レビュー アウトラインプロセッサー「NanaTree」の派生版「NanaTerry」
窓の杜 - 【#モリトーク】第4話:引き継がれる作者魂
窓の杜 - 書きづらい長ーい文章を見やすく、シンプルに管理するアウトラインプロセッサー「NanaTerry」
窓の杜ダウンロードページ
コメント (22)
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

結論:やはりソースは読むもんだ

2021-12-22 22:09:27 | Delphi
NanaTerry はオリジナルからの流れで Window のドッキングを JVCL に任せている
ググっても英語かロシア語中国語で結局欲しい情報に行き当たらなかったりする

今回はドッキングした状態ではサイズを変えられないようにしたかったので
各々の Constraints を変えればいいと高をくくっていたところ上手くいかなかった

んで JvDockControlForm.pas から JvDockSupportControl.pas に飛んだら Splitter を生成してて
そこにはちゃんと OnCanResize イベントがあったので制御することが出来た
最初は例の type ごまかしで protected メソッドにアクセスしたりして苦労したんだけど
そんなにたいした問題でも無かった


FixedSize:Boolean;//サイズ固定

procedure TNanaMainForm.SplitterCanResize(Sender: TObject; var NewSize: Integer;
  var Accept: Boolean);
begin
  if FixedSize then Accept:=False;
end;

procedure TNanaMainForm.FormCreate(Sender: TObject);
begin
  with JvDockServer do
  begin
    Splitter[JvDockControlForm.dpRight].OnCanResize:=SplitterCanResize;
    Splitter[JvDockControlForm.dpLeft].OnCanResize:=SplitterCanResize;
    Splitter[JvDockControlForm.dpTop].OnCanResize:=SplitterCanResize;
    Splitter[JvDockControlForm.dpBottom].OnCanResize:=SplitterCanResize;
  end;
end;
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

正規表現ライブラリ SkRegExp

2021-11-13 16:54:07 | Delphi
NanaTerry で正規表現検索がおかしいと娘からクレームが入った

.(な|無)く
で検索して

それが無くなって
ン無くなって
らなくなるよ
が無くなって

↑の一つもヒットしない
.(な|無)
.(な|無)く.

とかならおk

まず秀丸や https://regex101.com/ で実際にヒットする事を確認後
自分が余計なことをやらかしてるのを前提にソースを確認したがわからない
最小限のコードで確認する
正規表現エンジンの SkRegExp ソースを読む
https://ht-deko.com/tech053.html#TRAINER_SKREGEXP に練習ツールがあったので確認するとヒットするが
ソースを自分の Delphi でコンパイルするとヒットしない
「もしかして SkRegExp のバージョン違い?」「2.5.3 でいけるのに 3.0.8 でおかしくなってる?」
小宮さんの配布サイトって確か随分前になくなっていたのでは?





GitHub にあった
3.1.12 2015/11/7
履歴読んでもわからんけど治ったっぽい
エンバグだったのか……


結論:GitHub は凄い
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Application.MainFormOnTaskbar

2021-09-11 12:24:51 | Delphi
Delphi2007 以降に搭載されたプロジェクトファイル内の
Application.MainFormOnTaskbar := True;
(新しいプロジェクトには、この行が自動的に追加)

特殊な構造をしていた Delphiを Windows のエアロ対応にするために歪な方法?で実現した(と私は受け取った)
しかしその副作用のため「Show」したサブフォームがメインフォームより前面に出てしまい見た目が「ShowModal」状態になってしまう問題は現在でも解消されていない(らしい)
https://docwiki.embarcadero.com/Libraries/Sydney/ja/Vcl.Forms.TApplication.MainFormOnTaskBar
『このプロパティに依存するアプリケーションでは、このプロパティが MainForm の Z 順序に影響を与える点に注意してください。』

わざとわかりにくく書いているのか?
要するにこう
「メインフォームから表示したフォームが常にメインフォームの上に表示されてしまう」

こちら↓でも「MainFormOnTaskbar はコメントアウトしようぜ」になってる(記事は古いけど)
フォームの重なり順序を変更する方法は?


おわかりいただけただろうか……
Form1 のタイトルバーがアクティブ色なことに……


Application.MainFormOnTaskbar を False にするとこれは解消されるが Aero が機能せずタスクバーにマウスを持って行った時サブフォームがプレビュー(サムネイル)として表示されたりする





ググった結果くろねこさんがファイナルアンサーを出しているっぽいんだけど
[Delphi] MainFormOnTaskBarとタスクバーボタン
[Delphi] MainFormOnTaskBarとタスクバーボタン2


「ITaskbarList インターフェイス」が Delphi 2010 で実装でそれ以前の Delphi ではタイプライブラリを作成
712_タスクバーへの追加・削除とプログレス表示
というのが邪魔くさかったのともっとわかりやすくて安易な方法を求めて彷徨った結果こちらにたどり着く

「How to allow Delphi secondary forms behind the main form」

つまり姿を隠したスプラッシュフォームをメインフォームに設定してサブフォームの親はすべてこいつにする
本来のメインフォームを閉じる( = アプリケーションの終了)時にスプラッシュフォームを閉じるようにすればユーザーにはわからない

『町娘を嫁にしたいからいったん他の武家の養女にする』みたいな感じ

このままではエアロ対応にはならず
・Application.MainFormOnTaskbar は True のまま

更にはタスクバーに登録されないので
・タスクバーへの登録は自分でやる




※最近の Delphi なら{Winapi.}のコメントを外してください

プロジェクトソース
program TestMainFormOnTaskbar;

uses
  Forms,
  TestMainFormOnTaskbarMainFormUnit in 'TestMainFormOnTaskbarMainFormUnit.pas' {RealMainForm},
  Form2Unit in 'Form2Unit.pas' {SubForm},
  SplashFormUnit in 'SplashFormUnit.pas' {SplashForm};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TSplashForm, SplashForm);
  Application.CreateForm(TRealMainForm, RealMainForm);
  Application.Run;
end.

スプラッシュフォームユニット
unit SplashFormUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TSplashForm = class(TForm)
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
    procedure CloseApplication;
  end;

var
  SplashForm: TSplashForm;

implementation

uses
  TestMainFormOnTaskbarMainFormUnit;//本来のメインフォーム

{$R *.dfm}

procedure TSplashForm.CloseApplication;
begin
  Close;
end;

procedure TSplashForm.FormCreate(Sender: TObject);
begin
  BorderStyle:=bsNone;
  Height:=1;//見せない方向で……
//  Show;
//  BringToFront;
end;

procedure TSplashForm.Timer1Timer(Sender: TObject);
begin
  if Assigned(RealMainForm) then
  begin
    Visible:=False;

//この部分がないとタスクバーに登録されない
    {Winapi.}Windows.SetWindowLong(RealMainForm.Handle, GWL_EXSTYLE,
      {Winapi.}Windows.GetWindowLong(RealMainForm.Handle, GWL_EXSTYLE) or WS_EX_APPWINDOW);
    {Winapi.}Windows.SetParent(RealMainForm.Handle, GetDesktopWindow);

    RealMainForm.Show;
    Timer1.Enabled:=False;
  end else Timer1.Interval:=10;//スプラッシュ画面を見せるならここを長くする
end;

end.

【リアル】メインフォームユニット
unit TestMainFormOnTaskbarMainFormUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TRealMainForm = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  RealMainForm: TRealMainForm;

implementation

uses
  Form2Unit,    //SubForm
  SplashFormUnit;//Close 手続き

{$R *.dfm}

procedure TRealMainForm.Button1Click(Sender: TObject);
begin
  TSubForm.Create(Self).Show;
end;

procedure TRealMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  SplashForm.CloseApplication;
end;

end.

サブフォームユニット
unit Form2Unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TSubForm = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private 宣言 }
  protected
    procedure CreateParams(var Params:TCreateParams); override;
  public
    { Public 宣言 }
  end;

var
  SubForm: TSubForm;

implementation

{$R *.dfm}

procedure TSubForm.CreateParams(var Params: TCreateParams);
begin
//Show されるフォーム
  inherited;
  Params.WndParent:=Application.MainForm.Handle;
end;

procedure TSubForm.FormCreate(Sender: TObject);
begin
  Color:=clRed;//わかりやすいように色つける
end;

end.


これでいけると思うが NanaTerry では多重起動処理で「Application.MainForm」あたり使いまくってるのでキチンとテストしなくてはいけない
コメント (2)
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

1.2.4 アップしました

2021-08-15 18:03:39 | NanaTerry
アップデート詳細はこちら
ダウンロード:Ver. 1.2.4




★★★★★★
今回の内容はほとんどが修正ですがひとつだけ

・本体のメモリ使用量が26%減少

☆メモリ使用量:上が今回のバージョン下が以前のバージョン




190MB のファイルを読み込む時間
NanaTerry 2秒(1,954ミリ秒)
↓は謎の文字列({\rtf1\ansi\ansicpg932\...)として読み込んだ場合
Mery 約17秒
秀丸は 1.5秒くらいで開いた後2.5秒くらいバックグラウンドでなにかしてた

一枚エディタは当然「Ctrl + end」ですぐに最後も描画出来るような状態に保たないといけないから
ノード毎に管理してるよりは大変なんだろうけど最初に全部読み込むこと自体は同じなので相当がんばったと思いますヽ('∀'o)ノ

★★★★★★
やっぱもうひとつだけ……
・検索>結果出力>検索結果一覧>右クリック「別窓で表示」:
これ何気に便利です
コメント (10)
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Rtf2HTML

2021-08-12 22:55:41 | Delphi
Rtf2HTML を日本語で扱えるようにガリガリ書いてる

Android OS で Shift-JIS コード処理するのまんどくせぃ……
何が面倒くさいって 4Byte 2Byte 半角カナの判断だけでも WindowsAPI 使えないんだからたまらん

「NanaTreeのエディタには一応、画像やOLE」がこう↓
NanaTree\'82\'cc\'b4\'c3\'de\'a8\'c0\'82\'c9\'82\'cd\'88\'ea\'89\'9e\'81\'41\'89\'e6\'91\'9c\'82\'e2OLE

なにしろベースにしてるライブラリが何十年も前に異人さんが作って公開してくれたものなので
おいらと癖も違うしコメントも英語だし素ではリストカウントエラー出るし
後々画像も取り出して表示しようと思って一端その部分を無視しようとしたらアプリケーションエラー出まくるしぃ
吐き出す文字コードにも癖があるのかちょっとでも条件式で期待するものになってなければタグ閉じ判断出来なかったり例外出たり

勤め人のプログラマたちっていつもこんな苦労してるんだねー
まあつっても Pascal だから読みやすいっちゃ読み易いんだけどね


うん
楽しいよ
趣味だから(はーと)
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

EverythingView 0.03x アップしました

2021-05-20 20:40:25 | EverythingView
2021/05/20
Version 0.0.3.24
・テキストファイルや Nana ファイルを読み込むとき 180MB を超えたあたりから「メモリが足りません」エラーとなっていたのを修正
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

nightly build 2021/05/16

2021-05-16 21:28:09 | NanaTerry
・設定>全般>保存>ノード名に UniCode を使用する:親ノードを持ち、かつ第一子であるノードの個別表示カスタマイズがクリアされてしまうのを修正
・設定>全般>外観>現在のウィンドウサイズで固定する:{ツリー/ブックマーク/メモ}も固定するようにした


ntr20210516.zip
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

1.2.3 アップしました

2021-05-09 19:02:45 | NanaTerry
アップデート詳細はこちら

ダウンロード:Ver. 123

NanaTab 同梱はじめました

今回からサンプルマクロとしてアップしていたものをマクロガイドに入れることにしました
ファイル>エクスポート>現在のノードをエクスポート で「MAC」フォルダに保存すればすぐにお使いいただけるサンプル集です
コメント (2)
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

TNotePadのSelectionLength 2

2021-03-13 12:16:37 | Delphi
以前 TNotePadのSelectionLength という記事でマイナス値になるのはおかしいと訂正したんだけどどうやら作者は意図的にしていたらしい

私が訂正した状態だと
エディタで IME「Shift+変換」の再変換したとき文字選択を右から左に選択していると選択部分が右にずれる


procedure TNotePad.WMImeRequest(var Msg: TMessage);
のなかで
//カーソル位置を変換位置先頭に持って行くため、右から左に選択されるようにする
とコメントがあって処理してる

???
では普段選択文字列の長さを取るときにこそそのたびに
Abs(SelectionLength)
とするべきということだったのか
それなら確かに選択方向も知ることが出来るけど(必要になったことはないが)
もちろん
Memo1.SelLength
とかはそうならない
やっぱりそこは VCL に合わせた仕様にして欲しかった
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

nightly build 2021/02/28

2021-02-28 23:09:36 | NanaTerry
・設定>全般>保存:「階層化テキストへの出力で完了メッセージを出さない」追加

・Ctrl+ファイル:「上書き禁止」切り替えメニュー追加
・ツリー>ファイルから追加:ReadOnlyファイルを選んだ時、編集できなくなるのを修正
・ツリー>別窓で開く:Ctrl+Vするとエディタに貼り付けられていたのを修正

・多重起動時に各種ダイアログを開いた状態のNanaTerryを{Ctrl+Tab/マウスジェスチャ}で呼び出すと、ダイアログが後ろ側へ隠れてしまうのを修正

・ノードカーソル位置記憶ファイルが保存できなかった時、メッセージを出さない設定追加
(.iniファイル「NoExportMessage=」を「FALSE」から「TRUE」に変更してください)

プレーンテキストモード(α版)
ツリー>別窓で開く
・編集可能だったのを修正
・開いた時、別窓の中へフォーカスするようにした


ntr20210228.zip
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

1.2.2 アップしました

2021-02-07 09:35:23 | NanaTerry
主なアップデート内容

階層化テキストのエクスポート / 上書き保存が早くなりました
実際に体験してみてください(怪しい勧誘みたい)

他にもプレーンエディタモード系の調整を行っています

クリップボード監視は常駐ソフトとの相性もあるのですが結構がんばりました


ダウンロード:122
サンプルマクロ3






「プレーンモードで編集したノードは nna 保存してもリッチテキストに変換しない」ON の時
ノードのコピーペーストで文字化けていたのも修正出来ました
何度も何度も根気よくつきあってくださった KIYURO さんに感謝します



2021/02/07 09:35~10:10 までにダウンロードされた方へ
バージョン情報が 121a になっていますが中身は 122 です
すみません
コメント (6)
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

NanaTerry をピン留めする

2021-01-01 18:01:43 | NanaTerry
私はピン留め使ってなかったので調べてまとめました

タスクバーにピン留めするには起動中にタスクバーのNanaTerryを右クリックして
「タスクバーにピン留めする」をクリックします



スタート画面にピン留めするにはスタートメニューに NanaTerry がないといけないのでもしない場合は作っちゃいます

エクスプローラで NanaTerry フォルダを開きます
もうひとつユーザーフォルダ内のプログラムフォルダを開きます
C:\Users\xx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs(xxはユーザー名)
NanaTerry.exe を【右】ドラッグドロップしてプログラムフォルダに【ショートカット】を作成してください

これでスタートメニューに NanaTerry が現れます

NanaTerry アイコンを右クリックして「スタートにピン留めする」を選んでください



参考 URL
アプリをスタート メニューにピン留めする/ピン留めを外す(MSサポート)
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

nightly build 2020/12/14

2020-12-14 20:41:54 | NanaTerry
nightly build 2020/12/04 をお使いの方は差し替えてくださいm(_ _)m

ntr20201214.zip

・「個別表示カスタマイズ」一度保存すると反映されなくなっていた(nightly build 2020/12/04)のを修正
コメント (14)
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする