2012年05月01日

選択リスト

■選択リスト

※2013年1月17日 修正
この記事をアップしてから、プロデル本体のプログラムに変更があり、選択リストの手順が正常に動かなくなっています。
いずれ修正されるかもしれませんが、とりあえずの回避策というか、間に合わせのプログラムに差し替えておきます。
なお、「選択リスト1が選択された時」以外の部分の説明は、前と同じです。

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

選択リストは、「ドロップダウンリスト」と呼ばれています。
あらかじめ、いくつかの選択肢を設定しておいて、その中からユーザーに選択してもらうリストで、キーボードでは、上下矢印キーで選択します。PC-Talkerでは「コンボボックス」とガイドされます。

一般ユーザー向けの解説では、○○のボックスの右にある ▼ をクリックすると、××の一覧が開くので……というように書かれています。

この部品は、さまざまなアプリケーションや設定ダイアログで使われていますので、皆さんもおなじみだと思います。
なお、マウスで ▼ をクリックすると、リストの一覧が、下に向かって開きますが、キーボードで操作する場合は、一覧は開かず、ボックスの中の内容が変化して表示されます。

■プログラムの例

────────── 
ウィンドウ1を表示する
待機する

ウィンドウ1とは
ウィンドウを継承する

はじめの手順
初期化する
終わり

初期化する手順
この内部領域大きさを{179、127}に変える
この内容を「ウィンドウ1」に変える

選択リスト1という選択リストを作る
その位置と大きさを{26、30、121、20}に変える
その一覧を{「札幌」、「東京」、「名古屋」、「大阪」、「福岡」}に変える

テキスト1というテキストを作る
その位置と大きさを{26、80、121、19}に変える

終わり

選択リスト1が選択された時の手順
配列は、選択リスト1の一覧
値は、選択リスト1の番号+1
テキスト1の内容を、配列([値])に変える
終わり

終わり
────────── 

■プログラムの説明

──────────────────────────────
選択リスト1という選択リストを作る
ーー選択リスト1 という名前の選択リストを作成します。
ーーリストの名前は、任意の名前をつけることが出来ます。

その位置と大きさを{26、30、121、20}に変える
ーーリストの位置と大きさを指定しています。
ーー表示する項目の文字数などに合わせて幅を変えることが出来ます。
ーー高さも変えることが出来ますが、普通はそのままで。

その一覧を{「札幌」、「東京」、「名古屋」、「大阪」、「福岡」}に変える
ーーリストの選択肢を、ここで指定します。
ーー指定する時は、選択肢を配列の形で記述します。

テキスト1というテキストを作る
その位置と大きさを{26、80、121、19}に変える

終わり

選択リスト1が選択された時の手順
ーー選択は、マウスならシングルクリック、
ーーキーボードでは、上下矢印キーを動かした時です。
ーー上下矢印キーを動かして、ある項目が選択されると、その内容が表示され、
ーー音声ガイドされます。この段階で、選択された状態になります。

配列は、選択リスト1の一覧
ーー選択リストの内容が反映されないため、いったん 選択リストの一覧を、
ーー再び配列の形にしています。

値は、選択リスト1の番号+1
ーープロデルでは、選択リストの番号は 0 から始まり、
ーー配列の要素番号は 1 から始まるため、選択リストの番号を
ーー配列の要素番号に対応させるため、数値を一つ加えています。

テキスト1の内容を、配列([値])に変える
ーー選択リストの番号に対応した、配列の要素番号の文字列を、
ーーテキスト部品に表示させています。
ーーTabキーでテキストに移動して確認してみて下さい。

終わり

終わり
──────────────────────────────

■最初にリストの項目を表示させる

上のプログラムの例では、はじめは選択リストには何も項目が表示されていません。最初からリストに項目を表示させておきたい場合は、リストの一覧から、表示させたい項目の番号を指定します。この指定は、ウィンドウの初期化の手順の中ではなく、初期化が終わった後の手順の中に、次のように記述します。

────────────────
はじめの手順
初期化する
選択リスト1の番号を1に変える
終わり
────────────────

こうすると、選択リストに、1番目の項目「札幌」が表示された状態で ウィンドウが開きます。

■参考

リファレンス > 基本ウィンドウ部品 > 選択リスト
http://rdr.utopiat.net/docs/reference/core/control/combobox.htm
posted by yanikun at 07:32| Comment(0) | TrackBack(0) | produire

2012年05月03日

リストボックス その1

■リストボックス

リストボックスは、タテ一列に項目が表示されたリストです(そのまんま…)。キーボードでは、上下矢印キーで移動しながら項目を選択します。
一般には「リストビュー」と呼ばれる部品ですが、プロデルでは、「リストボックス」と「リストビュー」という二つのリスト部品が用意されていて、目的に応じて使い分けるようになっています。

「リストボックス」と「リストビュー」の違いは、簡単に言うと、表示する見出しの数の違いです。リストボックスは見出しが一つだけ、リストビューは見出しが複数になります。
見出しというのは、たとえば Explorer(詳細表示)のファイル / フォルダの一覧の上に表示されている 名前・サイズ・更新日時などのことで、カラムと呼ばれています。
※正確に言うと、リストボックスには見出しはありませんが、とりあえず雰囲気で…。

■プラグイン

これまで紹介してきた部品、ラベル・ボタン・テキスト・テキスト領域・選択リストは、「基本ウィンドウ部品」と呼ばれ、プロデル本体だけで動作しますが、リストボックスとリストビューは、「応用ウィンドウ部品」と呼ばれるグループに属していて、「プラグイン」という外部プログラムを使わないと動きません。
このプラグインは、プロデルのインストールフォルダの中の「Plugins」というフォルダに格納されていて、必要に応じて呼び出して使うようになっています。

■プログラムの例

※注:リファレンスに記載されている実行例だと、なぜか「削除する」手順が動作しないため、その部分を書き替えてあります。

────────────────────
「Produire.WinControl.dll」を利用する
ウィンドウ1を表示する
待機する

ウィンドウ1とは
ウィンドウを継承する

はじめの手順
初期化する
終わり

初期化する手順
ーーこの手順は自動生成されたものです。編集しないでください
この内部領域大きさを{213、256}に変える
この内容を「会員名簿」に変える

ラベル1というラベルを作る
その内容を「会員一覧」に変える
その位置と大きさを{13、12、39、12}に変える

リストボックス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をクリアする
終わり

ーー削除の手順
削除ボタンがクリックされた時の手順
配列は、リストボックス1の一覧
個数は、リストボックス1の個数
値Aは、リストボックス1の番号
もし、値Aが「0」なら
「項目を選択してから操作して下さい。」を表示する
でないなら
リストボックス1をクリアする
結果は、配列の[値A]番目を消したもの
結果をリストボックス1に追加する
もし終わり
終わり

ーーウィンドウを閉じる手順
閉じるボタンがクリックされた時の手順
ウィンドウ1を閉じる
終わり

終わり
────────────────────

プログラムがけっこう長いため、説明は次回ということで。

■参考

リファレンス > ウィンドウ部品集 > リストボックス
http://rdr.utopiat.net/docs/reference/wincontrol/list.htm

プラグインについて
http://rdr.utopiat.net/docs/reference/plugin.htm
posted by yanikun at 07:58| Comment(0) | TrackBack(0) | produire

2012年05月05日

リストボックス その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に、内容を追加する
ーー代入された文字列を、リストボックス1の一覧に追加します。
ーーテキスト1の内容を変数に代入しないで、次のように書くことも出来ます。
ーーリストボックス1に、「[テキスト1の内容]」を追加する

テキスト1をクリアする
ーー続いて入力する時のために、テキスト1に入力された内容を
ーーいったんクリア(削除)します。

終わり

ーー削除の手順
削除ボタンがクリックされた時の手順
配列は、リストボックス1の一覧
ーーもともとリストボックスの一覧は配列なのですが、
ーーわかりやすくするため、配列という変数に代入します。
ーー短い簡単な手順では必要ありませんが、
ーー長い 少し複雑な手順を書く場合は、変数に代入しておいた方が
ーー後が楽になります。

個数は、リストボックス1の個数
ーー個数は、リストボックスの項目の数です。

値Aは、リストボックス1の番号
ーー番号は、リストボックスで選択されている項目の番号です。
ーー一番上の項目が 1 になります。
ーー選択は、キーボードでは カーソルの合っている項目
ーーマウスではクリックされた項目です。
ーーその番号を 値A という変数に代入しています。
ーー代入せずに リストボックス1の番号 という変数名のままでもOKです。

もし、値Aが「0」なら
ーーリストに項目が無い時、または、項目が選択されていない時、
ーー番号は 0(ゼロ)になり、何らかの処理を実行しようとすると、
ーーエラーになってしまうため、それを回避するため
ーー項目が選択されていない時は、次のメッセージを表示するようにしています。
ーーメッセージを出さずに、何も実行されないようにすることも出来ます。
ーーその場合は、
ーー「手順から抜ける」
ーーと書きます。

「項目を選択してから操作して下さい。」を表示する
でないなら
ーーリストボックスの番号は、0 以外は、正の整数になります。
ーーしたがって 1 以上なら…という意味になります。

リストボックス1をクリアする
ーー下ノ命令文で、項目を削除した後の配列をリストボックスに表示するため
ーーいったん、リストボックスを全てクリア(項目を削除)します。

結果は、配列の[値A]番目を消したもの
ーーリストボックスの番号と、配列の番号は対応している(同じ)ため
ーー配列から その番号の項目を削除します。
ーー削除後の新しい配列を、結果という変数に代入します。

結果をリストボックス1に追加する
ーー代入された新しい配列を、リストボックスに追加します。

もし終わり
終わり

ーーウィンドウを閉じる手順
閉じるボタンがクリックされた時の手順
ウィンドウ1を閉じる
終わり

終わり
────────────────────

■参考

リファレンス > ウィンドウ部品集 > リストボックス
http://rdr.utopiat.net/docs/reference/wincontrol/list.htm
posted by yanikun at 05:24| Comment(0) | TrackBack(0) | produire