投稿

4月, 2022の投稿を表示しています

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

 プロデルでのプログラム作りをしていると、いろいろな疑問が出て来ます。自分のやりたいことは、どのオブジェクトや手順を使えばいいのだろうか、プログラムは正しいはずなのに、何度やってもエラーになる、というような疑問です。 また、ある程度慣れてくると、こういう機能があったらいいのに…という要望も、徐々に出て来ます。 そういう疑問や要望に応えるために、プロデルには、「ドキュメント検索」と、各種の掲示板が用意されています。ここでは、その二つについて紹介します。 ■ドキュメント検索  プロデルのドキュメント  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にフォーカスする 終わり ーーツリーにフォルダを追加する [ノード]に、[パス]を、フォルダ追加する手順 【フォルダ名たち】 フォルダ名たちは、パスのフォルダの一覧 【フォルダ名】 【子ノード】 フォルダ名たちをフォルダ名にそれぞれ繰り返す 子ノードは、ノード:フォ

ツリー(ツリービュー) その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というラベルを作る その内容を「追加する名前」に変える その位置と大

選択リスト

 ■選択リスト 選択リストは、「ドロップダウンリスト」と呼ばれています。 あらかじめ、いくつかの選択肢を設定しておいて、その中からユーザーに選択してもらうリストで、キーボードでは、上下矢印キーで選択します。PC-Talkerでは「コンボボックス」とガイドされます。 一般ユーザー向けの解説では、○○のボックスの右にある ▼ をクリックすると、××の一覧が開くので……というように書かれています。 この部品は、さまざまなアプリケーションや設定ダイアログで使われていますので、皆さんもおなじみだと思います。 なお、マウスで ▼ をクリックすると、リストの一覧が、下に向かって開きますが、キーボードで操作する場合は、一覧は開かず、ボックスの中の内容が変化して表示されます。 ■プログラムの例 ────────────────────────────── ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する 終わり 初期化する手順 ーーこの手順は自動生成されたものです。編集しないでください この内部領域大きさを{179、127}に変える この内容を「ウィンドウ1」に変える 選択リスト1という選択リストを作る その位置と大きさを{26、30、121、20}に変える その一覧を{「札幌」、「東京」、「名古屋」、「大阪」、「福岡」}に変える テキスト1というテキストを作る その位置と大きさを{26、80、121、19}に変える 終わり 選択リスト1が選択された時の手順 テキスト1の内容を、選択リスト1の内容に変える 終わり 終わり ────────────────────────────── ■プログラムの説明 ────────────────────────────── 選択リスト1という選択リストを作る ーー選択リスト1 という名前の選択リストを作成します。 ーーリストの名前は、任意の名前をつけることが出来ます。 その位置と大きさを{26、30、121、20}に変える ーーリストの位置と大きさを指定しています。 ーー表示する項目の文字数などに合わせて幅を変えることが出来ます。 ーー高さも変えることが出来ますが、普通はそのままで。 その一覧を{「札幌」、「東京」、「名古屋」、「大阪」、「福岡」}に変える ーーリストの選択肢を、ここで指定します

テキスト領域 その3

 ■テキスト領域の内容を、ファイルに(名前を付けて)保存する テキスト領域の内容(文字列)をファイルに保存する手順です。前に紹介したサンプル「メモ帳」にも、保存の手順が書かれていますが、ここでは、それを簡略化した手順を紹介します。 ボタン2がクリックされた(押された)時の手順を、以下のように書き替えます。 ────────────────────────────── ボタン2がクリックされた時の手順 保存画面のフィルタを、「テキストファイル|*.txt;*.rdr|すべてのファイル|*.*」に変える 保存画面を表示する もし保存画面のキャンセルなら、終了する ファイル名は、保存画面のファイル名 テキスト領域1の内容を、ファイル名へ保存する ウィンドウ1を閉じる 終わり ────────────────────────────── ■プログラムの説明 「開く画面」と重複する箇所は、説明を省略しています。 ────────────────────────────── ボタン2がクリックされた時の手順 保存画面のフィルタを、「テキストファイル|*.txt;*.rdr|すべてのファイル|*.*」に変える 保存画面を表示する ーーWindows標準の「名前を付けて保存」のダイアログボックスを表示します。 もし保存画面のキャンセルなら、終了する ファイル名は、保存画面のファイル名 ーーダイアログボックスの、ファイル名を入力するボックスに、 ーーユーザーが入力した名前を、「ファイル名」という変数に代入します。 テキスト領域1の内容を、ファイル名へ保存する ーーテキスト領域1に表示されている文字列のデータを、 ーー「ファイル名」という変数に代入されたファイル名で保存します。 ウィンドウ1を閉じる ーーこれは、あっても無くてもいいのですが、名前を付けて保存した後に、 ーーウィンドウを閉じる手順を入れてみました。 終わり ────────────────────────────── 参考: リファレンス > 基本機能 > 保存画面 http://rdr.utopiat.net/docs/reference/core/dialog/savedialog.htm     

テキスト領域 その2

 2012年5月7日 追記(修正): ■ファイルを開くダイアログボックスから読み込む の所で、 ──────────────────── もし開く画面のキャンセルなら、終了する ──────────────────── というのは間違いで、これだとプログラム自体が終了してしまいます。 正しくは、 ────────────────────── もし開く画面のキャンセルなら、手順から抜ける ────────────────────── と書かなくてはいけませんでした。 これだと、ファイルを開く手順だけがキャンセルされて、プログラム自体はそのまま動きます。 ──ここから、元の記事── 前回の「テキスト領域」に関連したプログラムの手順を説明します。 ■テキストファイルから内容を読み込む 既存のファイルから内容を読み込んで、テキスト領域に表示してみます。 前回のプログラムの一部を、次のように書き替えます。 ※注意:プログラムが途中で改行されて表示され、本来の行の中に改行記号が挿入されている場合は、改行記号を削除して実行して下さい。 ──────────────────── ボタン1がクリックされた時の手順 ファイル内容は、「[マイドキュメント]example.txt」から読み込んだもの テキスト領域1の内容を、ファイル内容に変える 終わり ──────────────────── 「[マイドキュメント]example.txt」のファイル名は、適当に変えて下さい。基本的にはフルパスで指定しますが、以前 触れたように、プロデルでは、Windowsの基本的なフォルダ デスクトップ マイドキュメント などを、省略した形で表記することが出来ますので、ここでは [マイドキュメント] と書いています。 上記の例では、マイドキュメントの中の「example.txt」というファイルを指定していることになります。フルパスで書けば「D:\Documents\example.txt」となります(フォルダとファイルの名前はひとつの例)。 なお、通常 フォルダ名の最後には \ が付きますが、[マイドキュメント] には、そこまで含まれています。 ※注意:[マイドキュメント]と、全角の [ ] で括っている理由を説明しておきます。 プロデルでは、文字列は 「 」 で括ることになっています。 ────────

テキスト領域 その1

 ■テキスト領域 その1 複数行の文字列を入力することの出来る部品です。Windowsの「メモ帳」の編集領域と同等の機能を持っています(*1)。 なお、機能や設定・手順などの多くは、「テキスト」部品から引き継がれていますので、そちらのリファレンスも合わせて参照して下さい。 また、テキスト領域を使ったアプリケーションのサンプルが、「メモ帳」という名前で収録されていますので、そちらも参考にどうぞ(標準的なインストール先なら "C:\Program Files\Produire\サンプル\アプリ\メモ帳.rdr")。 ■プログラムの例 ────────────────────────────── ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する 終わり 初期化する手順 ーーこの手順は自動生成されたものです。編集しないでください この内部領域大きさを{298、271}に変える この内容を「ウィンドウ1」に変える このドラッグドロップを○に変える ラベル1というラベルを作る その内容を「テキスト欄」に変える その位置と大きさを{13、13、39、12}に変える テキスト領域1というテキスト領域を作る その位置と大きさを{12、28、274、193}に変える その折り返しを○に変える ボタン1というボタンを作る その内容を「ボタン1」に変える その位置と大きさを{68、236、75、23}に変える ボタン2というボタンを作る その内容を「ボタン2」に変える その位置と大きさを{149、236、75、23}に変える 終わり ボタン1がクリックされた時の手順 ーーここに 実行させたい命令文を書きます ーー例:テキスト欄の内容を表示する 終わり ボタン2がクリックされた時の手順 ーーここに 実行させたい命令文を書きます ーー例:ウィンドウ1を閉じる 終わり 終わり ────────────────────────────── ■上のプログラムの説明 テキスト領域だけでは、いろいろな手順を作っていくことが出来ないので、ボタンを2個 配置しました。 また、「ラベル」という部品が出て来ます。これは、「スタティックテキスト」とも呼ばれ、ウィンドウ上に表示される文字を、これで指定することが出来ます。 そして、このプログラムの

ボタンとテキスト

 ■部品を配置する ボタンとテキスト 前回は、何もないウィンドウを作成しました。続いて、このウィンドウの中に、部品を配置していきます。 まずは、ボタンとテキストを配置していくことにします。この二つの部品は、最も基本的な部品で、皆さんもおなじみだと思いますので。 ●ボタン … これを Spaceキー または Enterキーで押すことによって、さまざまな処理(手順)が行なわれます。形は、横長の長方形が普通です。 PC-Talkerでは「○○のプッシュボタン 確認」とガイドされます。 ●テキスト … 一行の文字列を入力するボックスです。形は、横長の長方形です。 PC-Talkerでは「○○のエディット 文字入力」とガイドされます。 前回の、何もないウィンドウに、ボタンとテキストを配置したプログラムを、下に掲載します。そして、部品の配置の仕方について説明していきます。 ──────────────────── ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する 終わり 初期化する手順 //この手順は自動生成されたものです。編集しないでください この内部領域大きさを{292、271}に変える この内容を「ウィンドウ1」に変える テキスト1というテキストを作る その位置と大きさを{54、98、180、19}に変える ボタン1というボタンを作る その内容を「OK」に変える その位置と大きさを{110、168、75、23}に変える 終わり ボタン1がクリックされた時の手順 テキスト1の内容を表示する 終わり 終わり ──────────────────── ■テキストとボタンの配置についての説明 行の先頭に ーー の付いている行が、説明です。 テキスト1というテキストを作る ーーウィンドウに部品を配置する時は、 ーーこのように部品の種類の後に連番を付けるか、 ーーまたは、その部品に名前を付けます。 ーー名前を付ける例:パスワード欄というテキストを作る その位置と大きさを{54、98、180、19}に変える ーー「その」は「テキストの」という意味で、 ーーこの場合は、「テキスト1の」ということを示しています。 ーー{54、98、180、19} ーーウィンドウ内の部品の位置と、部品の大きさを指定しています。 ーー位置と大きさの指定について

ウィンドウ

 ■とりあえず 何も無いウィンドウを作る 最初に、GUIの基本、あるいは土台となるウィンドウを作成します。ボタンやテキスト・リストビューなどの部品を、そのままデスクトップの画面上に ポンと置くことは出来ませんので。 リファレンスの「ウィンドウ」の項目(基本機能 の中にあります)には、次のような実行例が挙げられています。 ── と ── の間の文がプログラムになります。 ──────────────── 窓というウィンドウを作る 窓へOKボタンというボタンを作る その内容を「OK」に変える 窓を表示する 待機する ──────────────── もちろん、この書き方でもきちんとウィンドウは作成され、続けて手順を書いていけば動作します。簡単なプログラムなら、この書き方でもOKなのですが、この先 もう少し複雑なプログラム作りに挑戦していく時に、この書き方だと困る場面が出てきます。 そこで、プロデルでウィンドウを作成する時の、基本的なプログラムを、下に掲載します。 これをファイルに保存しておいて、ウィンドウを作成する時に使って下さい。 ※後の説明の都合上、コメント文字を // にしてあります。 ────────────────────────────── ウィンドウ1を表示する 待機する ウィンドウ1とは ウィンドウを継承する はじめの手順 初期化する 終わり 初期化する手順 //この手順は自動生成されたものです。編集しないでください この内部領域大きさを{292、271}に変える この内容を「ウィンドウ1」に変える 終わり 終わり ────────────────────────────── このプログラムをデザイナに貼り付けて実行してみて下さい。何も無いウィンドウが作成され、画面上に表示されます。 PC-Talkerでは、Ctrlキー+Altキー+2 の起動中のアプリケーション読み で確認することが出来ます。 ■プログラムの説明 ウィンドウの作成と表示の手順について、プログラムに沿って、簡単に説明していきます。 行頭に ーー の付いているのが説明で、付いていないのがプログラムの行です。 ウィンドウ1を表示する ーー下ノプログラム、つまりウィンドウを作成して表示させる手順の全体を、 ーーここで指定します。 待機する ーー作成したウィンドウを表示した後、何らかの手順 ーー

GUI

続いて、本来ならマニュアルに沿って、以下の項目について説明すべきところですが、これらの項目は、私がヘタな説明をするよりも、直接 本家の説明を読んでもらった方がいいのでは…という勝手な判断により、説明を省略いたします。 その代わりに、音声ユーザーにとって難関だと思われる「GUI」について説明していくことにします。 4.計算させる  5.『繰り返し文』 - 何度も繰り返す  6.『判断文』 - 判断する  7.『分岐文』 - 一つの内容について分岐する  8.『配列』 - 一つの変数にたくさんの内容を入れる  9.『辞書』 - 見出し語で出し入れする  10.『手順』 - プログラムを小分けにする  プロデル入門編  http://rdr.utopiat.net/docs/manual/basis/index.htm ■GUI GUIというのは、Graphical User Interface の略で、画像などを使ったアプリケーションの製作・操作法のことです。 見た目にわかりやすいウィンドウを作ることによって、マウスでの使い勝手を良くしているのが特徴で、現在のアプリケーションの主流となっています。…というか、ベテランのユーザーでないと、これしか知らないかもしれません。 そういうわけで、音声ユーザーが、自分でプログラムを作るにしても、やはり GUIアプリケーションを前提に学んでいく必要がある、というのが私の考えです。 以下、GUIに必要なウィンドウや、いろいろな部品について説明していきます。本家の説明は、以下でお読み下さい。  ↓  応用編 - 日本語プログラミング言語「プロデル」  http://rdr.utopiat.net/docs/manual/advance/index.htm ■お断り 本家のページでは、「プロデルデザイナを使ってウィンドウを作る」方法が説明されていますが、この方法は、音声とキーボードでは使えません。 では、どうするか? サンプルのプログラムを利用します。 具体的なサンプルの例を挙げる前に、またまたお断り。 2.オブジェクトを作る  3.種類を定義する  4.種類を継承する  5.種類の中の手順  マニュアルの中の 以上の項目は、既にプログラム作りの知識がある人でないと、読んでもよくわからないと思います。私も説明出来ません。 そこで、マニュアル

コメント

■コメント コメントというのは、プログラムをわかりやすくするための見出しのようなものです。特定の文字を行の先頭につけると、その行はプログラムとしては機能しなくなり、単なる説明文や目印になります。 ホームページを作った経験のある人はご存知だと思いますが、HTMLでは <!--  --> というコメントタグがあります。あれと同じです。 プロデルでは、 ’ 全角 // 半角 ーー 全角 の三種類の中から、自分で選ぶことが出来ます。 ※デザイナのツールメニュー → オプション → プログラムから設定できます。 ちなみに 私は ーー を使っています。これが一番 音が短いためです(PC-Talkerの場合)。  

変数を使う その2

          ■変化する変数 Part 1 メッセージは、「おはよう」 と書くと、「メッセージ」の中身の情報は「おはよう」に固定されますが、これをその時の状況やユーザーの操作に合わせて変化させることも出来ます。と言うか、むしろそのためにあるのが変数と言った方がいいかもしれません。 たとえば、いろいろなソフトやホームページなどで、パスワードを入力させるようなプログラムがあります。 これはまだ先の話になるのですが、ウィンドウを作って、その中にパスワードを入力するためのテキストボックスを配置したとします。 仮に、パスワードを入力するボックスの名前を「パスワード欄」という名前にします。すると、パスワード欄にユーザーが入力したパスワードを表すプログラムは次のようになります。 パスワードは、パスワード欄の内容 パスワードを表示する パスワードは、ユーザー一人に一つが原則ですから、ユーザーが10人いれば、10通りのパスワードが存在します。当然、ユーザーごとに、パスワード欄に入力する文字列が変わってきます。それでも、上記のプログラムのように変数を使うことで、その全てに対応することが出来るわけです。 ■変化する変数 Part 2 パソコンには時計が付いています。その情報は、通知領域(タスクトレイ)に表示されているほか、PC-Talkerのコマンドでも取得することが出来ます。 日付や時刻は、文字通り 刻々と変化しています。その日時の情報を変数に格納して表示することが出来ます。 説明の前に、とりあえず下ノプログラムをデザイナに書いて実行してみて下さい。現在の日付と時刻が、ダイアログボックスで表示されるはずです。 値は、今日 値の日付を表示する 値の時刻を表示する このプログラムでは、「値」が変数名です。そこに入っている情報は「今日」となっています。この「今日」というのは、プロデルで現在の日時を取得するためのおまじない(のようなもの)です。 つまり、「値」という変数の中に、現在=リアルタイムの日時という情報が入っていることになります。 そして、続く 2行目 3行目のプログラムによって、「値」という変数の箱に格納された情報を取得しています。 値の日付を表示する … (現在の日時の)日付を表示する 値の時刻を表示する … (現在の日時の)時刻を表示する 変数については、文章で説明されたも

変数を使う その1

                    ■変数 「変数」というのは、変な数のこと…ではありません。町内の変質者の数…でもありません。あ、そういう説明はムダだからもういいよって、そうですね。すいません。 「数」とは、数値のことではなく、情報を入れる箱のようなもの、と先に引数の所で説明しました。変数の「数」も、もちろん 同じ意味です。 そして、「変」は、変化するという意味で、まとめると、変化する情報を入れるための箱ということになります。 文章で説明するよりも、具体的な例に沿って説明した方がわかりやすいと思いますので、以下をどうぞ。 メッセージは、「こんにちは」 メッセージを表示する                上の2行の命令文のうち、1行目の「メッセージ」が変数=箱です。そして、その「メッセージ」という変数=箱の中に「こんにちは」という情報を入れました…というのが、1行目の命令文です。 このように、 変数の名前(変数名) は、「なんたらかんたら(箱の中に入れる情報)」 と書くことによって、変数=箱を作り、その中に情報を入れる、という二つの作業を同時に行なうことが出来ます。そして、変数という箱の中に情報を入れることを「代入」と言います(格納とも言います)。 次に2行目を見ていきましょう。 メッセージを表示する この 2行目の「メッセージ」は、既に「こんにちは」という情報が入った状態の変数=箱です。ですから、「メッセージを表示する」という命令文は、「メッセージ」という変数の中に入っている情報を表示しろ、と言っているわけです。そして、当然 先ほど入れた「こんにちは」という情報が表示されます。 ここで、1行目の メッセージは、「こんにちは」 の「こんにちは」を別の言葉に書き替えて試してみて下さい。書き替えたとおりの言葉がダイアログボックスに表示されるはずです。 コンピューターというのは、実に素直なヤツです。人間みたいに、本当は違う情報を持っているのに、わざと別の情報を相手に伝えるなんてことは絶対にありません。 「そろそろしゃべったらどうだ? 全部吐いて楽になれよ」なんてセリフも必要ありません。…だから、そういう説明は要らないって。 ■変数の命令文の書き方 変数名には、日本語またはアルファベットを使うことができます。したがって、先ほどの命令文は、次のように書くことも出来ます。カ