goo blog サービス終了のお知らせ 

∵ なぜならば

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

1.0.5t アップしました

2012-09-23 18:14:00 | NanaTerry
2012/09/23 ver 1.0.5t

・ブックマーク簡易検索
・「階層型テキストで読み込んだものは、階層型テキストとしてそのまま上書き保存」設定(その他)
・「最後に開いたファイルを開く」にショートカットキー
・「階層化テキストの行頭区切りマーク」設定(その他)
・検索一覧表示機能(必ず正規表現で検索されます)

・階層化テキストへのエクスポートでノード内文書が切れていたバグを修正
・ついでに余分な改行が入っていたのを除去
・画像縮小条件以下の場合 D&D 出来ていなかったのを修正
・Ctrl + Enter の挙動不審を修正
・ツリーノード名の編集で Ctrl + V が出来なかったのを修正
(ブックマークノードの方は出来ていません
右クリックかプロパティ窓で編集してください)
・検索文字列が反転しているとき再度検索画面を出して「次を検索」が次に行かないのを修正
・メニューバーが二段になる時に最大化するとメインツールバーの下に不思議な空白が出ることを修正

105t


開発日誌 - メンテナンス

2012-09-23 13:30:04 | NanaTerry
NanaTree オリジナルは元々カスタマイズもユーザーの希望に十分応える作りになっていますが
「ショートカットキーを追加して欲しい」といわれた場合数カ所に手を加えなければいけないようになっていました
私は凡ミスが多い人間ですのでこれではいけないと思い開発をはじめた最初の頃にここら辺は変更していました

オリジナルのソースを見ていただければわかりますがこんな感じで

//----------------------------------------
// キー割付読み込み
//----------------------------------------
procedure TNanaMainForm.LoadKeyBind;
  procedure SetKeyBind(Action: TAction);
  var
    S: String;
  begin
    S := GlobalModule.IniStorage.ReadString(Action.Name, ShortCutToText(Action.ShortCut));
    Action.ShortCut := TextToShortCut(S);
  end;
var
  Act:TAction;
  i:integer;
begin
  // ファイル
  SetKeyBind(ActionNew);
  SetKeyBind(ActionOpen);
  SetKeyBind(ActionSave);
  SetKeyBind(ActionSaveAs);
  SetKeyBind(ActionExportPage);
  SetKeyBind(ActionExportDoc);
  SetKeyBind(ActionPagePrint);
  SetKeyBind(ActionDocPrint);
  SetKeyBind(ActionExit);
  SetKeyBind(BossKeyAction);
  SetKeyBind(BossKeyAllNanaAction);
  SetKeyBind(SaveAndExitAction);

  // 移動
  SetKeyBind(ActionNaviPrev);
  SetKeyBind(ActionNaviNext);
  SetKeyBind(TreeForm.ActionPrevFocus);
  SetKeyBind(TreeForm.ActionNextFocus);

  // ツリー操作
  SetKeyBind(TreeForm.ActionInsertNode);
  SetKeyBind(TreeForm.ActionAddNode);
  SetKeyBind(TreeForm.ActionAddChildNode);
  SetKeyBind(ActionAddFromFile);
  SetKeyBind(TreeForm.ActionMovePrev);
  SetKeyBind(TreeForm.ActionMoveNext);
  SetKeyBind(TreeForm.ActionMoveDown);
  SetKeyBind(TreeForm.ActionMoveUp);
  SetKeyBind(TreeForm.ActionCopy);
  SetKeyBind(TreeForm.ActionCut);
  SetKeyBind(TreeForm.ActionPaste);
  SetKeyBind(TreeForm.ActionDeteleNode);
  SetKeyBind(ActionTreeMergeNode);
  SetKeyBind(ActionTreeSplitNode);
  SetKeyBind(TreeForm.ActionExpandAll);
  SetKeyBind(TreeForm.ActionSortNode);

  // 編集
  SetKeyBind(EditorForm.ActionEditUndo);
  SetKeyBind(EditorForm.ActionEditRedo);
  SetKeyBind(ActionCopy);
  SetKeyBind(ActionCut);
  SetKeyBind(ActionPaste);
  SetKeyBind(ActionFormatPaste);
  SetKeyBind(ActionSelectAll);

  SetKeyBind(EditorForm.IndentLeftAction);
  SetKeyBind(EditorForm.IndentRightAction);
  SetKeyBind(FocusEditTitleAction);

  // 検索
  SetKeyBind(ActionFind);
  SetKeyBind(ActionFindPrev);
  SetKeyBind(ActionFindNext);
  SetKeyBind(ActionFindReplace);

  // 挿入
  SetKeyBind(EditorForm.ActionInsertLink);
  SetKeyBind(EditorForm.ActionInsertPicture);
  SetKeyBind(EditorForm.ActionInsertObject);
  SetKeyBind(EditorForm.ActionInsertTable);

  // 書式
  SetKeyBind(EditorForm.ActionFontDlg);
  SetKeyBind(EditorForm.ActionBold);
  SetKeyBind(EditorForm.ActionItalic);
  SetKeyBind(EditorForm.ActionUnderline);
  SetKeyBind(EditorForm.ActionStrikeOut);
  SetKeyBind(EditorForm.ActionSuperScript);
  SetKeyBind(EditorForm.ActionSubScript);
  SetKeyBind(EditorForm.ActionAlignLeft);
  SetKeyBind(EditorForm.ActionAlignCenter);
  SetKeyBind(EditorForm.ActionAlignRight);
  SetKeyBind(EditorForm.ActionBullets);
  SetKeyBind(EditorForm.ActionNumbering);

  //ツール
  SetKeyBind(QuickOptionsAction);


現在はこうなっています


//----------------------------------------
// キー割付読み込み
//----------------------------------------
procedure TNanaMainForm.LoadKeyBind;
  procedure SetKeyBind(Action: TAction);
  var
    S: String;
  begin
    S := GlobalModule.IniStorage.ReadString(Action.Name, ShortCutToText(Action.ShortCut));
    Action.ShortCut := TextToShortCut(S);
  end;
var
  Act:TAction;
  i:integer;
begin
  GlobalModule.IniStorage.Reload;
  GlobalModule.IniStorage.Path := 'KeyBind';

  for i:=0 to MainActionList.ActionCount-1 do
  begin
    Act:=TAction(MainActionList.Actions[i]);
    if Act.Category<>'' then SetKeyBind(Act);
  end;

  with EditorForm do
  begin
    for i:=0 to EditorActionList.ActionCount-1 do
    begin
      Act:=TAction(EditorActionList.Actions[i]);
      if Act.Category<>'' then SetKeyBind(Act);
    end;
  end;

  with TreeForm do
  begin
    for i:=0 to TreeActionList.ActionCount-1 do
    begin
      Act:=TAction(TreeActionList.Actions[i]);
      if Act.Category




それぞれの ActionList を調べて個々の Action に Category プロパティが設定されていれば SetKeyBind 手続きを呼び出します

こうすることによって今回のように

564 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2012/09/17(月) 21:19:08.86 ID:Ee9re73Q0
要望です
「最後に開いたファイルを開く」にショートカットキーを割り当てたいです
マウスジェスチャでしかできないようなので……

http://anago.2ch.net/test/read.cgi/software/1332169510/564


と要望が出た時該当する動作が TAction でありさえすれば
IDE で Category プロパティを設定するだけで
「了解しました」
となります

膨大なデータ

2012-09-22 21:35:48 | 雑記
インターネット上には500万TBのデータが存在し、Googleが索引をつけて検索可能にしているのは全体の0.004%というから驚きです。




元記事は 2010年11月01日 になってるから既に総量は何倍にもなってるかも知れない

でも、重複したデータが何割もありそうな気がする
特に資料として扱われるべきデータ
少しずつ編集の違う動画、もちろん全く同じ動画、リブログされるたびにリサイズしてコピーされる画像、
そして、あらゆる種類のダウンロードコンテンツ

こういったモノを一つにまとめたら(出来るだけオリジナルに近いモノのみ残したら)
残るのは個人の日記や日常スナップだけで、数TB くらいしか無いのではなかろうか