ツリー(ツリービュー) その4

 ■別のサブフォルダに、同名で内容の違うファイルが存在する時


このケースの対処法については、これからも考えてみるつもりですが、とりあえずの対策ということで、以下のプログラムの例を紹介します。プログラムの説明は、次回ということで。


■事前の説明


このプログラムには、「キュー」と「決定ボタン」「取消ボタン」という、これまで紹介したことのない手順が出てきます。

「決定ボタン」と「取消ボタン」については、プログラムの説明の中で、「キュー」については、別のエントリーで説明することにします。簡単に言うと、「キュー」というのは、一時的なデータの保管場所のことです。


──────────────────────────────

「Produire.WinControl.dll」を利用する

FIFOというキューを作る


ウィンドウ1を表示する

待機する


ウィンドウ1とは

ウィンドウを継承する


はじめの手順

初期化する

終わり


初期化する手順

ーーこの手順は自動生成されたものです。編集しないでください

この内部領域大きさを{245、364}に変える

この内容を「ウィンドウ1」に変える


ラベル1というラベルを作る

その内容を「フォルダ」に変える

その位置と大きさを{13、13、40、12}に変える


ツリー1というツリーを作る

その項目高さを14に変える

その位置と大きさを{13、29、219、278}に変える


選択ボタンというボタンを作る

その内容を「選択」に変える

その位置と大きさを{13、329、65、23}に変える


開くボタンというボタンを作る

その内容を「開く」に変える

その位置と大きさを{87、329、65、23}に変える


閉じるボタンというボタンを作る

その内容を「閉じる」に変える

その位置と大きさを{163、329、65、23}に変える


終わり


ーーフォルダの選択

選択ボタンがクリックされた時の手順

フォルダ選択画面を表示する

もしフォルダ選択画面のキャンセルなら、手順から抜ける

フォルダ名は、フォルダ選択画面のフォルダ名

ツリー1をクリアする

ツリー1を更新開始する

ツリー1に「[フォルダ名]」をフォルダ追加する

ツリー1を更新終了する

ツリー1にフォーカスする

終わり


ーーツリーにフォルダを追加する

[ノード]に、[パス]を、フォルダ追加する手順

【フォルダ名たち】

フォルダ名たちは、パスのフォルダの一覧

【フォルダ名】

【子ノード】

フォルダ名たちをフォルダ名にそれぞれ繰り返す

子ノードは、ノード:フォルダ名を「image\folder_close.ico」で追加したもの

子ノードに、パス&「\」&フォルダ名をフォルダ追加する

繰り返し終わり


【ファイル名たち】

ファイル名たちは、(パス&「\*.txt」)のファイルの一覧

【ファイル名】

ファイル名たちをファイル名にそれぞれ繰り返す

ノード:ファイル名を「image\document.ico」で追加する

繰り返し終わり

終わり


ツリー1が折りたたみ後時の手順

イベントの対象のアイコンを「image\folder_close.ico」に変える

終わり

ツリー1が展開後時の手順

イベントの対象のアイコンを「image\folder_open.ico」に変える

終わり


ーーファイルを開く

開くボタンがクリックされた時の手順

判定は、[正規表現:ツリー1の選択内容から「.*\.txt」を取り出したもの]

もし、判定が「{}」でないなら

一覧は、[フルパスで「[フォルダ名]」のファイルの全一覧]

配列は、一覧から「\[ツリー1の選択内容]」を探す

もし、配列の個数=1なら

番号は、配列(1)

パス名は、一覧([番号])

ファイル名は、「"[パス名]"」

ファイル名を起動する

他でもし、配列の個数≧2なら

配列を要素にそれぞれ繰り返す

パス名は、一覧([要素])

パス名を、FIFOに並ばせる

繰り返し終わり

ウィンドウ2を表示する

もし終わり

もし終わり

終わり


閉じるボタンがクリックされた時の手順

自分を閉じる

終わり


終わり


ーーファイルの選択

ウィンドウ2とは

ウィンドウを継承する


はじめの手順

初期化する

配列は、FIFOの全要素

配列を要素にそれぞれ繰り返す

ファイル名は、要素のファイル名だけ

場所は、要素のフォルダだけ

値は、要素のサイズ

サイズは、値のサイズ形式

更新日は、要素の更新日

リストビュー1に、ファイル名を追加する

その詳細を、{「[場所]」、「[サイズ]」、「[更新日]」}に変える

繰り返し終わり

終わり


初期化する手順

ーーこの手順は自動生成されたものです。編集しないでください

この内部領域大きさを{458、180}に変える

この内容を「ファイルの選択」に変える

この初期位置を、中央に変える


ラベル1というラベルを作る

その内容を「同名ファイル一覧」に変える

その位置と大きさを{13、13、39、12}に変える


リストビュー1というリストビューを作る

その位置と大きさを{13、28、432、97}に変える

その表示方法を「詳細」に変える

その見出し一覧を{「ファイル名」、「場所」、「サイズ」、「更新日」}に変える

その見出し幅を{120,162,60,90}に変える


ボタン1というボタンを作る

その内容を「開く」に変える

その位置と大きさを{13、141、75、23}に変える


ボタン2というボタンを作る

その内容を「キャンセル」に変える

その位置と大きさを{370、141、75、23}に変える


この決定ボタンを、ボタン1に変える

この取消ボタンを、ボタン2に変える


終わり


ボタン1がクリックされた時の手順

もし、リストビュー1の選択番号が「-1」でないなら

配列は、リストビュー1の選択項目の詳細

ファイル名は、配列(1)

場所は、配列(2)

「"[場所][ファイル名]"」を起動する

もし終わり

終わり


ボタン2がクリックされた時の手順

自分を閉じる

終わり


終わり

──────────────────────────────


コメント

このブログの人気の投稿

■アクセシブルな開発環境「日本語プログラミング言語・プロデル」の紹介

ドキュメント検索 と 掲示板

「キュー」と「スタック」 その2