PICマイコンを使って測定ツールを作ってみよう(5) ―― ネットワークとA-Dコンバータを利用してさまざまな場所の温度を測る

中西 紫朗

tag: 組み込み 電子回路

エレキ系DIY 2011年8月11日

●コンボボックス・オブジェクトを作ってみよう

 前回,説明したオブジェクトはテキストボックス・オブジェクトでした.今回は,コンボボックス・オブジェクトの使い方を説明します.

 コンボボックス・オブジェクトは,テキストボックス・オブジェクトにプルダウン・メニューによる選択入力を行える機能が追加されています.

 右側の下向き三角のボタンをクリックすると,プルダウン・メニューが開きます.何番目の項目を選んだかは,ListIndexというプロパティで見ることができます.また,項目(アイテム)を追加するには,AddItemというメソッドを使います.何個のアイテムが登録されているかは,ListCountというプロパティを見れば分かります.Form_Load関数で必要なアイテムを設定しておき,実行時にアイテムを選択し,いろいろな設定に利用する手法が一般的です.

 今回はスレーブIDの選択にコンボボックス・オブジェクトを使っています.Combo1でアイテム(スレーブID)が選択されると,クリックされているわけですから,Combo1_Clickイベントが起こり,そのときID配列番号にListIndex+1が代入されます.SA(1),SA(2),SA(3)という配列メンバにそれぞれ,スレーブ#1,#2,#3のID番号が割りつけられています.

 今回は単純に1,2,3という順番で割り付けているので,特に再変換する必要はありません.そのままListIndex値を各スレーブIDにしても動作します.ただし,スレーブIDは,実際に利用する際に何番になるのか分からないので,こういう方法が一番変更に強いと思います.

 ツールボックスからコンボボックスを選択してFormに貼り付けます(図4).コンボボックス・オブジェクトでは,表示内容はTextというプロパティに保存されますが,直接,このテキストを変更することも可能です.基本的にテキストボックスの属性を受け継いでいますが,MultiLineプロパティはありません.

 

図4 コンボボックス・オブジェクトを作成する

 

 コンボボックスは,プログラム実行時に入力が行えます.しかし,自動的にプルダウン・メニューに追加することはできません.あくまでもコードの中でAddItemを行わないと,プルダウン・メニューのリストに追加できません.ただし,初期値としてListの中にアイテムを登録しておくことができます.ここでは図5のようにアイテムを登録します.

 

図5 コンボボックス・オブジェクトのリスト入力

 

 これでRUNすると,コンボボックスだけ表示されたFormが表示されます.コンボボックスの逆三角のボタンをクリックするとプルダウン・メニューが現れて,さきほど入力したアイテムが表示されます(図6).いずれかのアイテムをクリックすると,そのアイテムが選択され,プルダウン・メニューは閉じて,コンボボックス内にアイテムが表示されます.

 

図6 コンボボックスの実行例

 

 実際のプログラムでは,選択されたアイテムによって処理を選んだり,データベースに書き出したりします.それには,実際にどのアイテムが選択されたかをプログラムに知らせる必要があります.簡単なコードを作り,どうやればできるかを試してみましょう.

 Form上のコンボボックスをダブルクリックすると,コード・ウィンドウが開き,Combo1_changeイベントの処理関数が自動的に作られます.ここではこれは使わず,Combo1_clickという関数を作ります.図7のコードを入力します.

 

図7 コンボボックスのコード例

 

 選択されたアイテムは,Combo1.textに入れられます.表示したい場合は,これを使います.また,何番のアイテムが選択されたかは,Combo1.ListIndexの中に入れられます.この二つの値を,それぞれラベルに表示するようにします.

 RUNするとコンボボックスが現れるので,先ほどと同じように逆三角のボタンをクリックして,プルダウン・メニューを表示します.いずれかのアイテム(ここでは4番目のアイテムのDragon)を選択します.すると,それぞれのラベルにアイテムと番号が表示されます(図8).番号は0が最初なので,実際には1少ない番号になります.

 

図8 コンボボックスのコード例の実行結果

 

 ここではアイテムの登録は,プロパティウィンドウから直接Listに入力しましたが,コードの中でも登録できます.AddItemを実行すると,順番にアイテムが登録されていきます.順番を飛び越して登録することはできません.

 

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日