プロデルの魅力の一つは,「ウィンドウの設計」が付属しており画面を簡単に作れることである。
いま,data.go.jpからデータセットを得ようとしていて(過去の記事1・過去の記事2),検索結果を見やすくするためにウィンドウを作る。
ウィンドウの設計
ウィンドウの設計は,挿入→ウィンドウで起動する。この時,自動的にウィンドウのコードがソースに追加される。ウィンドウの設計を一度閉じても,右側のツリーから画面をダブルクリックすることで再度開かれる。
リストボックスとボタンを2つ設置した。
初期化する手順
ーー自動生成された手順です。ここにプログラムを書き加えても消える場合があります
この実質大きさを{675,390}に変える
この内容を「検索画面」に変える
初期化開始する
ボタン2というボタンを作る
その大きさを{100,45}に変える
その内容を「>」に変える
その移動順を2に変える
ボタン1というボタンを作る
その大きさを{100,45}に変える
その内容を「<」に変える
その移動順を1に変える
その有効は,×。
リストボックス1というリストボックスを作る
その項目高さを27に変える
その移動順を3に変える
そのフォントを「游ゴシック,15.75,太字」に変える
初期化終了する
終わり
今回は大きさが変えられるウィンドウであり,位置と,リストボックスの大きさを定める意味がないので消した。
イベント
オブジェクト毎に利用可能なイベントが定められており,これはドキュメントに明記されている。今回は,ウィンドウの大きさが変わった時にリストボックスの大きさとボタンの位置を変えたい。また,ボタンが押された時に,検索結果を次々に表示したい。
ウィンドウの大きさが変わったときにGUI部品の位置と大きさを変える
ウィンドウに関するイベントは,主語なくウィンドウ種類の定義内にいきなり書く。ウィンドウの大きさは「自分の大きさ」や「自分の実質大きさ」で取得する。基本的には実質大きさを使うことが多いはず。
検索画面とは
ウィンドウを継承する
’(略)
大きさが変化した時の手順
リストボックス1の大きさを{自分の実質大きさの幅,自分の実質大きさの高さ-45}に変える。
ボタン1の位置を{自分の実質大きさの幅-200,自分の実質大きさの高さ-45}に変える。
ボタン2の位置を{自分の実質大きさの幅-100,自分の実質大きさの高さ-45}に変える。
終わり
終わり
これで,ウィンドウの大きさが変わった際に他のGUI部品の位置や大きさも変わるようになったが,このプログラムは動かない。なぜなら,ウィンドウが初期化される際にもウィンドウの大きさが変わるためこの手順が実行されてしまうからである。その時,まだボタン1などは未定義であり,エラーが出る。
そこで,開いた時イベントを使って,GUI部品が出来上がっていた場合にのみ位置と大きさを変更することにした。
開いた時の手順
表示済は,○
大きさが変化した
終わり
大きさが変化した時の手順
もし表示済なら
リストボックス1の大きさを{自分の実質大きさの幅,自分の実質大きさの高さ-45}に変える。
ボタン1の位置を{自分の実質大きさの幅-200,自分の実質大きさの高さ-45}に変える。
ボタン2の位置を{自分の実質大きさの幅-100,自分の実質大きさの高さ-45}に変える。
もし終わり
終わり
イベント手順を呼び出す際は,「時の手順」を除いて呼べば良い(ドキュメントに書かれているままの名称で呼び出せる)。
ボタンのクリック
ウィンドウ以外のGUI部品のイベントは,その部品の名称を主語にして記述する。
ボタン1がクリックされた時の手順
終わり