投稿

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

 プロデルでのプログラム作りをしていると、いろいろな疑問が出て来ます。自分のやりたいことは、どのオブジェクトや手順を使えばいいのだろうか、プログラムは正しいはずなのに、何度やってもエラーになる、というような疑問です。 また、ある程度慣れてくると、こういう機能があったらいいのに…という要望も、徐々に出て来ます。 そういう疑問や要望に応えるために、プロデルには、「ドキュメント検索」と、各種の掲示板が用意されています。ここでは、その二つについて紹介します。 ■ドキュメント検索  プロデルのドキュメント  http://rdr.utopiat.net/docs/index.html このページの、「プロデルのドキュメント」のエディットボックスに、キーワードを入力して、「検索」のボタンを押して下さい。 NetReaderや、Internet Explorer+最新のPC-Talkerなら、E のキーを押せば、エディットボックスにカーソルがジャンプします。 ■掲示板 プロデルには、目的に応じて、以下の各種の掲示板が用意されています。 ●プロデル質問掲示板  http://rdr.utopiat.net/cgi/bbs/wforum-rdr.cgi プロデルでのプログラム作り全般に関する質問のための掲示板です。 ●プロデル不具合報告掲示板  http://rdr.utopiat.net/cgi/bbs2/wforum-rdr.cgi 自分のプログラムではなく、プロデル自体、またはプロデルデザイナの不具合についての報告と確認のための掲示板です。 ●プロデル雑談掲示板  http://rdr.utopiat.net/cgi/bbs0/board-rdr.cgi プロデルに対する要望を、作者に伝えるための掲示板です。また、名前のとおり、プロデルやプログラム作りに関する雑談的な話題も扱っています。 ●作品一覧 - プロデル プログラム掲示板  http://rdr2.utopiat.net/cgi/progbbs/forump.php プロデルのユーザーが自作したプログラムを投稿するための掲示板です。 ※投稿するためには、ユーザー登録が必要になります。 ■掲示板のルール 掲示板の利用についての具体的な注意事項が、下記の所にありますので、投稿する前にお読み下さい。 掲示板のルール  htt

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

 再度「キュー」を使ったプログラムです。ウィンドウに、テキスト領域をふたつ配置して、一方のテキスト領域でコピー(選択)した文字列を、連続して「キュー」に入れていき、もう一つのテキスト領域に、まとめて表示するプログラムです。 拙作「FIFO」では、クリップボードを監視して「キュー」に入れていますが、クリップボードを使うと少しプログラムが複雑になるため、ここでは、選択した文字列を「キュー」に入れています。 ■プログラムの例と説明 ────────────────────────────── FIFOというキューを作る ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する ーー貼り付けた部品に対する操作をここに書きます 終わり 初期化する手順 ーーこの手順は自動生成されたものです。編集しないでください この内部領域大きさを{435、396}に変える この内容を「ウィンドウ1」に変える この部品キーイベントを○に変える テキスト領域1というテキスト領域を作る その位置と大きさを{13、13、410、213}に変える ボタン1というボタンを作る その内容を「表示」に変える その位置と大きさを{267、359、75、23}に変える テキスト領域2というテキスト領域を作る その位置と大きさを{13、243、410、100}に変える ボタン2というボタンを作る その内容を「閉じる」に変える その位置と大きさを{348、359、75、23}に変える 終わり キーが押された時の手順 もし、イベントのコントロールキーが○かつイベントのキー名が「C」なら テキスト領域1の選択内容を、FIFOに並ばせる ーーここでは、コピーコマンドの Ctrl+C をキーイベントに ーー使っていますが、他のキー、例えば F5 や、Ctrl+F1 など、 ーー任意のキーの組み合わせを指定することが出来ます。 もし終わり 終わり ボタン1がクリックされた時の手順 配列は、FIFOの全要素 結果は、配列を[改行]で繋げたもの ーー配列の区切りを、改行に置き換えます。 ーー改行記号も含めて選択した場合は、間に空行が出来ます。 テキスト領域2の内容を、結果に変える テキスト領域2にフォーカスする FIFOをすべて消す ーー同じウィンドウを起動したまま、次の作業をする場合の

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

キュー」と「スタック」は、共にデータを処理するためのもので、パソコンのいろいろな所で使われています。 プロデルで使う場合は、プログラムの冒頭で作成します。すると、メモリ上に、データを保管するための一定の領域が確保されます。その領域に、データを入れたり取り出したりしながら、さまざまな処理を行なっていきます。 ■「キュー」と「スタック」の違い ①キュー (queue) … 「先入れ先出 First In  First Out」、別名「行列法」と呼ばれる方法でデータを処理します。 ラーメン屋の行列では、一番先に並んだ客が、一番先にラーメンを食べることが出来ます。その次は、二番目に並んでいた客が……という具合に、先に格納されたデータから先に処理される、という方法のため、こう呼ばれています。 ②スタック (stack)  … 「後入れ先出し  Last In First Out」と呼ばれる方法でデータを処理します。「キュー」とは逆に、一番後に入れたデータから先に処理されます。 プロデルのリファレンスでは、床の上に本を積んでいき、一番上=一番最後に積んだ本から先に処理する、と説明されています。 ■プログラムの例 実は私は、スタックはサンプルを試したことがあるくらいで、実際のプログラムでは使ったことがまだありません。 したがって、プログラムの例と説明は、キューだけになります。よろしく。 ────────────────────────────── FIFOというキューを作る フォルダ配列は、「[デスクトップ]」のフォルダの一覧 フォルダ配列を要素にそれぞれ繰り返す 要素を、FIFOに並ばせる 繰り返し終わり ファイル配列は、「[デスクトップ]」のファイルの一覧 ファイル配列を要素にそれぞれ繰り返す 要素を、FIFOに並ばせる 繰り返し終わり FIFOの全要素を表示する ────────────────────────────── ■プログラムの説明 ────────────────────────────── FIFOというキューを作る ーー「FIFO」という名前のキューを作成します。 ーー名前は、任意の名前を付けることが出来ます。 ーーこれで、データを保管する場所(領域)が確保されます。 ーーこの保管場所を使えるのは、プログラムの実行中だけで、 ーープログラムを終了すると、保管

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

 ■前回のプログラムの説明 ※「キュー」という、データ処理の手順については、別のエントリーで説明します。 ────────────────────────────── 「Produire.WinControl.dll」を利用する FIFOというキューを作る ーー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」)のファイルの一覧 【ファイル名】 ファイル名たち

ツリー(ツリービュー) その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にフォーカスする 終わり ーーツリーにフォルダを追加する [ノード]に、[パス]を、フォルダ追加する手順 【フォルダ名たち】 フォ

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

 ■前回のプログラムの説明 前回 紹介したツリーのプログラムの説明です。ウィンドウの作成(初期化)のプログラムの説明は省略しています。 ────────────────────────────── ーー(ウィンドウの初期化と表示 = 省略)  ーーフォルダの選択 選択ボタンがクリックされた時の手順 フォルダ選択画面を表示する もしフォルダ選択画面のキャンセルなら、手順から抜ける フォルダ名は、フォルダ選択画面のフォルダ名 ツリー1をクリアする ーー起動して、最初にフォルダを選択する時には必要有りませんが、 ーー起動したまま、次のフォルダを選択すると、 ーー前のフォルダの一覧がツリーに残ってしまい、 ーー新たに選択した内容と重複して表示されてしまうため、 ーーいったん、前のフォルダの一覧をクリアしておきます。 ツリー1を更新開始する ツリー1に「[フォルダ名]」をフォルダ追加する ーーフォルダ選択画面で選択されたフォルダ(のパス)を、ツリーに追加します。 ツリー1を更新終了する ツリー1にフォーカスする ーーユーザー(最初は あなた自身ですが)の手間を省くため、 ーーフォルダを追加した後、ツリーにフォーカスを移動させます。 ーー別に無くてもかまいませんが。 終わり ーーツリーにフォルダを追加する [ノード]に、[パス]を、フォルダ追加する手順 【フォルダ名たち】 フォルダ名たちは、パスのフォルダの一覧 【フォルダ名】 【子ノード】 フォルダ名たちをフォルダ名にそれぞれ繰り返す 子ノードは、ノード:フォルダ名を「image\folder_close.ico」で追加したもの 子ノードに、パス&「\」&フォルダ名をフォルダ追加する 繰り返し終わり 【ファイル名たち】 ファイル名たちは、(パス&「\*.txt」)のファイルの一覧 ーー【ファイル名たち】は、局所変数(私の根拠なき推測)なので、 ーーこの書き方は、ツリーの手順の中でしか使えません。 ーーここでは、追加するファイルの拡張子を指定(絞り込み)しています。 ーー「\*.txt」は、テキストファイル.txt だけを抽出しろ、という指定です。 ーー他の 複数の拡張子を指定する時は、たとえば次のように書きます。 ーー「\*.txt;*.doc;*.docx;*.xls;*.xlsx」 … テキストファイルと、 ーーOff

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

 ━━━━━━━━━━━━━━━━━━━━━━━━━ ※2012年7月17日 修正: 先日アップロードしたプログラムには欠陥があり、 正しく動作しない場合があることがわかりましたので、 修正したものをアップし直します。 ━━━━━━━━━━━━━━━━━━━━━━━━━ 今回は、前回で書いたとおり、フォルダだけでなく、ファイルの一覧も追加して、選択したファイルを開くプログラムを紹介します。なお、プログラムの説明は次回にします。 ■プログラムの例 ────────────────────────────── 「Produire.WinControl.dll」を利用する ウィンドウ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にフォーカスする 終わり ーーツリーにフォルダを追加する [ノード]に、[パス]を、フォルダ追加する手順 【フォルダ名たち】 フォルダ名たちは、パスのフォルダの一覧 【フォルダ名】 【子ノード】 フォルダ名たちをフォルダ名にそれぞれ繰り返す 子ノードは、ノード:フォ