投稿

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

 プロデルでのプログラム作りをしていると、いろいろな疑問が出て来ます。自分のやりたいことは、どのオブジェクトや手順を使えばいいのだろうか、プログラムは正しいはずなのに、何度やってもエラーになる、というような疑問です。 また、ある程度慣れてくると、こういう機能があったらいいのに…という要望も、徐々に出て来ます。 そういう疑問や要望に応えるために、プロデルには、「ドキュメント検索」と、各種の掲示板が用意されています。ここでは、その二つについて紹介します。 ■ドキュメント検索  プロデルのドキュメント  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 プロデルのユーザーが自作したプログラムを投稿するための掲示板です。 ※投稿するためには、ユーザー登録が必要になります。 ■掲示板のルール 掲示板の利用についての具体的な注意事項が、下記の所...

「キュー」と「スタック」 その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」 … テキストファイ...

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

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

 ツリービューは、プロデルでは「ツリー」と呼ばれます。もちろん、フォルダのツリービューなどでおなじみの、あの「ツリービュー」です。もちろん、動作や操作も同じです。 ■準備 ツリーを動作させるためには、部品の中で使われるアイコンの画像ファイルが必要になります。ツリービューを操作して、フォルダを開いたり閉じたりした時に、「ドキュメント プラス」「example マイナス」というようにガイドされますが、この プラス・マイナス は、ここで使われる画像を読んでいます。したがって、この画像を使わないと、画面上でも、音声でも、フォルダの開閉を確認することが出来ません。 画像ファイルは、プロデルのインストールフォルダの中にあります。普通にインストールしていれば、次のパスの例になります。 "C:\Program Files\Produire\サンプル\image" ツリーを使うプロデルのファイルと同じ場所に、「image」というフォルダを作成し、上記のフォルダの中から、ツリーの表示と動作に必要な画像ファイルをコピーしておきます。 ※面倒くさかったら、「image」のフォルダごとコピーしてもOKです。 ●必要なファイル document.ico … ファイルに使用されるアイコン  folder_close.ico … フォルダが閉じた時のアイコン( + )  folder_open.ico … フォルダが開いた時のアイコン( - )  ■プログラムの例 今回は、特定のフォルダの中のフォルダの一覧を、ツリーに追加するプログラムを紹介します。そして、次回は、より実用的な、フォルダの中のファイルも一緒に追加するプログラムを紹介することにします。 ※ここでは、例として[マイドキュメント]の中のフォルダを表示させています。たぶん、ここはフォルダの数が多いため、表示に時間がかかると思います。F5キーでプログラムを実行してから、少し時間をおいて下さい。 ※ドライブ(C:\ など)や、「C:\Program Files」「C:\Windows」などのフォルダは追加することが出来ないようです。 ────────────────────────────── 「Produire.WinControl.dll」を利用する ウィンドウ1を表示する 待機する ウィンドウ1とは...

ショートカットキー

 今回は、音声ユーザーには無くてはならない機能「ショートカットキー」について説明します。プログラムにショートカットキーを設定するには、ウィンドウのキーイベント手順を使います。 ※「ホットキー」は、ショートカットキーと同じように使われる言葉ですが、プロデルでは、この二つは区別されています。ショートカットキーは、そのプログラムの中でだけ機能するキーで、ホットキーは、システム全体で機能するキーです。 ※ホットキーについては、リファレンスを参照して下さい。 ■プログラムの例 ────────────────────────────── ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する 終わり 初期化する手順 ーーこの手順は自動生成されたものです。編集しないでください この内部領域大きさを{292、271}に変える この内容を「ウィンドウ1」に変える この部品キーイベントを○に変える ラベル1というラベルを作る その内容を「ラベル1」に変える その位置と大きさを{48、90、39、12}に変える そのフォントサイズを20に変える 終わり キーが押された時の手順 もし、イベントのコントロールキーが○かつイベントのキー名が「D1」なら ラベル1の内容を、「Ctrl+1」に変える 「ショートカットキーは、Ctrl+1 です。」を表示する もし終わり もし、イベントのキー名が「F1」なら ラベル1の内容を、「ヘルプを開きます。」に変える 「ヘルプを開きます。」を表示する もし終わり 終わり 終わり ────────────────────────────── ■プログラムの説明 ────────────────────────────── ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する 終わり 初期化する手順 ーーこの手順は自動生成されたものです。編集しないでください この内部領域大きさを{292、271}に変える この内容を「ウィンドウ1」に変える この部品キーイベントを○に変える ーーこのプログラム(ウィンドウ)の中で、ショートカットキーを設定して、 ーーキーイベントの手順が使えるように指定します。 ラベル1というラベルを作る その内容を「ラベル1」に変える その位置と大...

設定の保存と呼び出し(設定ファイル) その4

 今回は、設定ファイルの最初の回で紹介した、ユーザー名とパスワードの設定を、ダイアログボックス(ウィンドウ)で表示させるプログラムです。 ※プログラムの説明は省略します。 ■プログラムの例 ウィンドウの内容と、「ボタン1」の内容を、「登録」という内容に変えて、ボタン1がクリックされた時の手順で、テキスト1 テキスト2の内容を、設定ファイルに保存するように書くと、設定を保存することが出来ます。 ────────────────────────────── 「Produire.File.dll」を利用する アプリ設定という設定ファイルを作る アプリ設定のファイル名は、「[デスクトップ]settings.ini」 認証ウィンドウを表示する 待機する 認証ウィンドウとは ウィンドウを継承する はじめの手順 初期化する ーー貼り付けた部品に対する操作をここに書きます 終わり 初期化する手順 ーーこの手順は自動生成されたものです。編集しないでください この内部領域大きさを{195、127}に変える この内容を「認証」に変える ラベル1というラベルを作る その内容を「ユーザー名」に変える その位置と大きさを{13、15、39、12}に変える テキスト1というテキストを作る その位置と大きさを{72、12、110、19}に変える ラベル2というラベルを作る その内容を「パスワード」に変える その位置と大きさを{13、55、39、12}に変える テキスト2というテキストを作る その位置と大きさを{72、48、110、19}に変える そのパスワード文字を「*」に変える ボタン1というボタンを作る その内容を「認証」に変える その位置と大きさを{13、91、75、23}に変える ボタン2というボタンを作る その内容を「キャンセル」に変える その位置と大きさを{107、91、75、23}に変える 終わり ーー認証 ボタン1がクリックされた時の手順 ユーザー名は、アプリ設定について「アカウント」から「ユーザー名」を取得したもの パスワードは、アプリ設定について「アカウント」から「パスワード」を取得したもの もし、テキスト1の内容が「[ユーザー名]」かつテキスト2の内容が「[パスワード]」なら 「認証に成功しました。」を表示する でないなら 「認証に失敗しました。[改行][改行]ユーザ...

設定の保存と呼び出し(設定ファイル) その3

 前回のプログラムの説明です。 ■プログラムの説明 ────────────────────────────── 「Produire.File.dll」を利用する アプリ設定という設定ファイルを作る アプリ設定のファイル名は、「[デスクトップ]settings.ini」 ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する ーーウィンドウの初期化の後に、設定に応じて、 ーーテキスト領域の折り返しを指定します。 折り返しは、アプリ設定:「テキスト」から「折り返し」を取得したもの もし、折り返しが「する」なら テキスト領域1の折り返しを○に変える ーー設定の値が「する」の場合は、テキスト領域1を ーー右端で折り返して表示します。 他でもし、折り返しが「しない」なら テキスト領域1の折り返しを×に変える ーー設定の値が「しない」の場合は、テキスト領域1の ーー右端での折り返し表示を無効にします。 ーーこうすると、ウィンドウからはみ出た文字は、 ーー画面上では見えなくなります(音声では読める)。 もし終わり 終わり 初期化する手順 この内部領域大きさを{392、343}に変える この内容を「ウィンドウ1」に変える テキスト領域1というテキスト領域を作る その位置と大きさを{0,30,392,343}に変える そのドッキング方向を「全体」に変える メニュー1というメニューを作る その位置と大きさを{0、0、392、24}に変える その内容を「メニュー1」に変える ファイルメニューというメニュー項目をメニュー1へ追加する その内容を「ファイル(&F)」に変える 開く項目というメニュー項目をメニュー1のファイルメニューへ追加する その内容を「開く(&O)」に変える そのショートカットを「Control+O」に変える そのクリックされた時の手順は、ファイルを開く 閉じる項目というメニュー項目をメニュー1のファイルメニューへ追加する その内容を「閉じる(&C)」に変える そのクリックされた時の手順は、閉じる ツールメニューというメニュー項目をメニュー1へ追加する その内容を「ツール(&T)」に変える 設定項目というメニュー項目をメニュー1のツールメニューへ追加する その内容を「設定(&S)」...

設定の保存と呼び出し(設定ファイル) その2

 前回のプログラムは、設定の保存と呼び出しの手順を紹介するだけのものでしたので、今回は、もう少し実用的なプログラムの例を紹介します。 「メニュー その他 (その1)」で紹介したプログラムの「ウィンドウ1」のテキスト領域を、右端で折り返して表示するかどうかを設定して、それを反映させるプログラムです。 準備:デスクトップに作成した設定ファイル「settings.ini」を開いて、次のセクション・キー名・値を書き加えて、上書き保存しておいて下さい。ウィンドウの初期化の後に、この設定データを読み込んで起動します。 ──────── [テキスト] 折り返し=する ──────── ■プログラムの例 ────────────────────────────── 「Produire.File.dll」を利用する アプリ設定という設定ファイルを作る アプリ設定のファイル名は、「[デスクトップ]settings.ini」 ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する 折り返しは、アプリ設定について「テキスト」から「折り返し」を取得したもの もし、折り返しが「する」なら テキスト領域1の折り返しを○に変える 他でもし、折り返しが「しない」なら テキスト領域1の折り返しを×に変える もし終わり 終わり 初期化する手順 この内部領域大きさを{392、343}に変える この内容を「ウィンドウ1」に変える テキスト領域1というテキスト領域を作る その位置と大きさを{0,30,392,343}に変える そのドッキング方向を「全体」に変える メニュー1というメニューを作る その位置と大きさを{0、0、392、24}に変える その内容を「メニュー1」に変える ファイルメニューというメニュー項目をメニュー1へ追加する その内容を「ファイル(&F)」に変える 開く項目というメニュー項目をメニュー1のファイルメニューへ追加する その内容を「開く(&O)」に変える そのショートカットを「Control+O」に変える そのクリックされた時の手順は、ファイルを開く 閉じる項目というメニュー項目をメニュー1のファイルメニューへ追加する その内容を「閉じる(&C)」に変える そのクリックされた時の手順は、閉じる ツールメニューとい...

設定の保存と呼び出し(設定ファイル)

 プログラムの設定を保存したり、呼び出したりするには、レジストリに記録する方法と、設定ファイルを使用する方法の二つがあります(その他は無視)。 私自身が、やたらにレジストリに書き込むソフトが嫌いなため、ここでは設定ファイルによる方法を紹介します。 なお、設定ファイルは、「INIファイル」と呼ばれ、大文字の INI が使われますが、実際の設定ファイルの拡張子は、小文字で .ini となります。 ■プログラムの例 事前に、デスクトップフォルダに設定ファイルを作成しておく必要はありません。プログラムの中で作成します。 ただし、他の人に、自分の作ったプログラムを使ってもらう時は、事前に初期設定などを記述した設定ファイルを同梱する必要があります。 ────────────────────────────── 「Produire.File.dll」を利用する アプリ設定という設定ファイルを作る アプリ設定のファイル名は、「[デスクトップ]settings.ini」 アプリ設定について「アカウント」で「ユーザー名」へ「example」を設定する アプリ設定について「アカウント」で「パスワード」へ「abc123」を設定する ユーザー名は、アプリ設定について「アカウント」から「ユーザー名」を取得したもの パスワードは、アプリ設定について「アカウント」から「パスワード」を取得したもの ユーザー名を表示する パスワードを表示する 「ユーザー名=[ユーザー名][改行]パスワード=[パスワード]」を表示する ────────────────────────────── ■設定ファイルの書式 設定ファイルの書式は、次のようになります。 [セクション名] キー名=値 実際に、上のプログラムの例で作成・設定した設定ファイルを開いてみます。設定ファイルはテキストファイルなので、Windowsの初期値では「メモ帳」に関連付けされています(…そのはず)。 実際にプログラムを動かして設定する時は、プログラム上で設定を保存したり、読み込んだりするわけですが、プログラムを作っている時は、テストやデバッグのために、自分で設定ファイルを編集することもあります。 ────────── [アカウント] ユーザー名=example パスワード=abc123 ────────── 先ほどの書式にあてはめてみると、...

メニュー その他 (その2)

 ■オプション 「オプション」というのは、ラジオボタンのことです。項目の先頭に丸い枠があり、その項目が選択されると、その中に一回り小さな黒い丸印がつきます。その形が、ラジオのボタンに似ていることから「ラジオボタン」と呼ばれています。 複数の選択肢からどれか一つを選択する部品のため、当然ですが、オプションは二つ以上 作成する必要があります。 ■チェックボックス Spaceキーでチェックをオンオフして、どちらかの状態を選択する部品です。 内容の先頭に、□ の枠が付加されて表示されます。チェックすると、その枠の中に、カタカナの レ と似た形のチェックが表示されます。 ■プログラムの説明 ────────────────────────────── ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する 終わり 初期化する手順 この内部領域大きさを{392、343}に変える この内容を「ウィンドウ1」に変える テキスト領域1というテキスト領域を作る その位置と大きさを{0,30,392,343}に変える そのドッキング方向を「全体」に変える ーードッキング方向というのは、ウィンドウの大きさが変化した時に、 ーーそれに合わせて部品の大きさを自動的に調整する設定項目です。 ーー「全体」を指定すると、テキスト領域の大きさが、 ーーウィンドウの大きさと同じ大きさに変化します(メニューを除く)。 メニュー1というメニューを作る ーーメニュー1というメニュー部品を作成します。 その位置と大きさを{0、0、392、24}に変える ーーメニュー部品の幅は、通常はウィンドウの幅と同じに設定します。 その内容を「メニュー1」に変える ーーこの「メニュー1」という内容は、メニューの作成後には ーー表示されませんが、手続きとして設定する必要があります。 ファイルメニューというメニュー項目をメニュー1へ追加する ーーメニュー部品に「メニュー項目」を追加します。 その内容を「ファイル(&F)」に変える ーー上で追加した「ファイルメニュー」というメニュー項目の内容を ーー「ファイル(&F)」と設定します。 ーー(&F) は、アクセスキーの設定です。 ーー画面に表示されると (F) となり、& は表示されません。 開く項目...

メニュー その他 (その1)

 Altキーで開くプルダウンメニューです。音声ユーザーには、おなじみの部品で、ほとんどの視覚障害者向けのソフトには、このメニューが付いています。 プロデルで作るメニューには、二つ注意すべき点があります。 ①日本語入力モードにすると、アクセスキーが使えなくなる。 アクセスキーとは、Alt F O のように、Altキーでメニューバーにフォーカスを移動し、F でファイルメニューを選択、O で開くメニュー項目を実行、という操作です。 半角モードでは問題ないのですが、日本語入力モードに切り替えると、この操作が出来なくなります。これは、プロデルの仕様のようです。 ②システムメニューの項目が無くなる。 一般のソフトでは、ヘルプメニューなどから右矢印キーを押すと、システムメニューに移動しますが、プロデルでメニューを作成すると、システムメニューの項目が無くなります。 Alt+Spaceを押せばシステムメニューは開くのですが、メニューバーにシステムメニューを表示させたい場合は、自分で作成する必要があります。 ※メニュー → ツール → 設定 → オプション設定を実行すると、設定ダイアログボックスが開きます。このダイアログボックスの目的は、オプション=ラジオボタンとチェックボックスの説明のためのものなので、内容は設定とは関係ないものになっています。 設定については、設定ファイルの説明が必要なため、別の所で合わせて説明します。 ■プログラムの例 ────────────────────────────── ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する 終わり 初期化する手順 この内部領域大きさを{392、343}に変える この内容を「ウィンドウ1」に変える テキスト領域1というテキスト領域を作る その位置と大きさを{0,30,392,343}に変える そのドッキング方向を「全体」に変える メニュー1というメニューを作る その位置と大きさを{0、0、392、24}に変える その内容を「メニュー1」に変える ファイルメニューというメニュー項目をメニュー1へ追加する その内容を「ファイル(&F)」に変える 開く項目というメニュー項目をメニュー1のファイルメニューへ追加する その内容を「開く(&O)」に変える そのショー...

リストビュー その2

 ■プログラムの説明 ────────────────────────────── 「Produire.WinControl.dll」を利用する ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する 終わり 初期化する手順 この内部領域大きさを{402、358}に変える この内容を「ウィンドウ1」に変える リストビュー1というリストビューを作る その位置と大きさを{13、13、376、288}に変える その表示方法を「詳細」に変える ーーリストビューの表示方法を指定します。 ーーここでは Explorerの詳細表示と同じような形にしています。 ーーリストビューの表示方法には、他に「アイコン」や「一覧」などがあります。 その見出し一覧を{「ファイル名」、「サイズ」、「更新日時」}に変える ーー見出し(カラム)の一覧を、配列の形で指定します(詳細表示のみ)。 ーー指定した見出しが、左から順にリストの一覧の上に表示されます。 その見出し幅を{174、64、138}に変える ーー見出しの幅(区切り位置)を、配列の形で指定します。 ーー数値の順番は、見出しの項目の順番に対応しています。 ボタン1というボタンを作る その内容を「ボタン1」に変える その位置と大きさを{12、317、75、23}に変える ボタン2というボタンを作る その内容を「ボタン2」に変える その位置と大きさを{315、317、75、23}に変える 終わり ボタン1がクリックされた時の手順 リストビュー1をクリアする ーー起動したまま、続けて別のフォルダを参照すると、 ーー前の一覧が残ってしまうため、ここでリストをクリアします。 フォルダ選択画面を表示する ーーWindows標準の「フォルダの参照」のダイアログボックスを ーー表示させる命令文です。 もしフォルダ選択画面のキャンセルなら、手順から抜ける ーー「フォルダの参照」の画面で、ユーザーが「キャンセル」を押したり、 ーーEscapeキーを押した時は、処理を中止するように指定します。 フォルダ名は、フォルダ選択画面のフォルダ名 ーー「フォルダの参照」のツリービューで、ユーザーが選択したフォルダを、 ーー[フォルダ名]という変数に代入します。 配列は、フォルダ名のファイルの全一覧 ーー指定したフォルダに格...

リストビュー その1

 リストボックスに続いて、Explorerのように、見出し(カラム)が複数あるリスト部品=リストビューについて紹介していきます。 リストボックスに比べて、リストビューはプログラムが複雑になります。とりあえずは、全ての手順(命令文)を理解する必要はありません。私自身も完全には理解出来ていませんので…(って 大丈夫か)。 ※なお、今回から、 ────────────────────────────── ーーこの手順は自動生成されたものです。編集しないでください ────────────────────────────── という一行は省略していきます。 ■リストビューのプログラムの例 ────────────────────────────── 「Produire.WinControl.dll」を利用する ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する 終わり 初期化する手順 この内部領域大きさを{402、358}に変える この内容を「ウィンドウ1」に変える リストビュー1というリストビューを作る その位置と大きさを{13、13、376、288}に変える その表示方法を「詳細」に変える その見出し一覧を{「ファイル名」、「サイズ」、「更新日時」}に変える その見出し幅を{174、64、138}に変える ボタン1というボタンを作る その内容を「ボタン1」に変える その位置と大きさを{12、317、75、23}に変える ボタン2というボタンを作る その内容を「ボタン2」に変える その位置と大きさを{315、317、75、23}に変える 終わり ボタン1がクリックされた時の手順 リストビュー1をクリアする フォルダ選択画面を表示する もしフォルダ選択画面のキャンセルなら、手順から抜ける フォルダ名は、フォルダ選択画面のフォルダ名 配列は、フォルダ名のファイルの全一覧 配列を要素にそれぞれ繰り返す パス名は、「[フォルダ名][要素]」 値は、パス名のサイズ サイズは、値のサイズ形式 更新日は、パス名の更新日 要素を、リストビュー1に追加する その詳細を、{[サイズ]、[更新日]}に変える 繰り返し終わり 終わり ボタン2がクリックされた時の手順 ウィンドウ1を閉じる 終わり 終わり ──────────────────...

リストボックス その3

 ■項目を一括で追加する 項目がゼロ、つまり何もないリストに追加していくこともありますが、どちらかと言うと、あらかじめいくつかの項目が表示されていて、そこに新たな項目を追加したり、削除したり、という処理の方が実際は多いと思います。 そこで、項目を一括で追加する手順を。 下は、リストボックスのプログラムの例から、ウィンドウの表示の手順だけを抜き出したものです。 ーー★ という行が 三箇所あります。このうちのどれかに、一括で追加する手順を書き加えていって下さい(くれぐれも全部を書かないように)。 結果は同じものになりますが、どこにするかは、他の手順とのかね合いで決まります。 ──────────────────── ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する ーー★1 終わり 初期化する手順 ーーこの手順は自動生成されたものです。編集しないでください この内部領域大きさを{213、256}に変える この内容を「会員名簿」に変える ラベル1というラベルを作る その内容を「会員一覧」に変える その位置と大きさを{13、12、39、12}に変える ーー★2 リストボックス1というリストボックスを作る その位置と大きさを{13、27、100、211}に変える ラベル2というラベルを作る その内容を「追加する名前」に変える その位置と大きさを{125、12、39、12}に変える テキスト1というテキストを作る その位置と大きさを{125、25、75、19}に変える 追加ボタンというボタンを作る その内容を「追加」に変える その位置と大きさを{125、53、75、23}に変える 削除ボタンというボタンを作る その内容を「削除」に変える その位置と大きさを{125、82、75、23}に変える 閉じるボタンというボタンを作る その内容を「閉じる」に変える その位置と大きさを{125、214、75、23}に変える ーー★3 終わり ──────────────────── ──────────────────── はじめの手順 初期化する ーー★1 配列は、{「青木 一郎」、「佐々木 恵子」、「高橋 啓司」、「藤田 良江」、「吉田 幸三」} 配列を、リストボックス1に追加する 終わり ────────────────────...

リストボックス その2

 ■プログラムの説明 ──────────────────── 「Produire.WinControl.dll」を利用する ーーこのプログラムでは、「Produire.WinControl.dll」というプラグインを ーー利用します、という宣言です…そのまんまですけど。 ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する 終わり 初期化する手順 ーーこの手順は自動生成されたものです。編集しないでください この内部領域大きさを{213、256}に変える この内容を「会員名簿」に変える ラベル1というラベルを作る その内容を「会員一覧」に変える その位置と大きさを{13、12、39、12}に変える リストボックス1というリストボックスを作る ーー「リストボックス1」という名前のリストボックスを作成します。 ーー名前は任意の名前をつけることが出来ます。 その位置と大きさを{13、27、100、211}に変える ーーリストボックスの位置と大きさを指定しています。 ーー大きさは必要に応じて変更が可能です。 ーーその際、高さは厳密に指定する必要はありません。 ーー項目の数が多くてリストからはみ出した場合は ーー縦スクロールバーが(既定で)表示されるようになっているためです。 ーー幅の方も、項目の文字数に合わせて、だいたいの数値を指定します。 ーーこちらも、文字がリストからはみ出すと ーー横スクロールバーが(既定で)表示されるようになっているためです。 ラベル2というラベルを作る その内容を「追加する名前」に変える その位置と大きさを{125、12、39、12}に変える テキスト1というテキストを作る その位置と大きさを{125、25、75、19}に変える 追加ボタンというボタンを作る その内容を「追加」に変える その位置と大きさを{125、53、75、23}に変える 削除ボタンというボタンを作る その内容を「削除」に変える その位置と大きさを{125、82、75、23}に変える 閉じるボタンというボタンを作る その内容を「閉じる」に変える その位置と大きさを{125、214、75、23}に変える 終わり ーー追加の手順 追加ボタンがクリックされた時の手順 内容は、テキスト1の内容 ーーテキスト1に入力された文字列を、内容...

リストボックス その1

 ■リストボックス リストボックスは、タテ一列に項目が表示されたリストです(そのまんま…)。キーボードでは、上下矢印キーで移動しながら項目を選択します。 一般には「リストビュー」と呼ばれる部品ですが、プロデルでは、「リストボックス」と「リストビュー」という二つのリスト部品が用意されていて、目的に応じて使い分けるようになっています。 「リストボックス」と「リストビュー」の違いは、簡単に言うと、表示する見出しの数の違いです。リストボックスは見出しが一つだけ、リストビューは見出しが複数になります。 見出しというのは、たとえば Explorer(詳細表示)のファイル / フォルダの一覧の上に表示されている 名前・サイズ・更新日時などのことで、カラムと呼ばれています。 ※正確に言うと、リストボックスには見出しはありませんが、とりあえず雰囲気で…。 ■プラグイン これまで紹介してきた部品、ラベル・ボタン・テキスト・テキスト領域・選択リストは、「基本ウィンドウ部品」と呼ばれ、プロデル本体だけで動作しますが、リストボックスとリストビューは、「応用ウィンドウ部品」と呼ばれるグループに属していて、「プラグイン」という外部プログラムを使わないと動きません。 このプラグインは、プロデルのインストールフォルダの中の「Plugins」というフォルダに格納されていて、必要に応じて呼び出して使うようになっています。 ■プログラムの例 ※注:リファレンスに記載されている実行例だと、なぜか「削除する」手順が動作しないため、その部分を書き替えてあります。 ──────────────────── 「Produire.WinControl.dll」を利用する ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する 終わり 初期化する手順 ーーこの手順は自動生成されたものです。編集しないでください この内部領域大きさを{213、256}に変える この内容を「会員名簿」に変える ラベル1というラベルを作る その内容を「会員一覧」に変える その位置と大きさを{13、12、39、12}に変える リストボックス1というリストボックスを作る その位置と大きさを{13、27、100、211}に変える ラベル2というラベルを作る その内容を「追加する名前」に変える その...