目的
このチュートリアルでは、Tutorial #1に引続き、基本的なNS Basic/CEのプログラミングテクニックをお見せします。まだTutorial #1を終えていないようでしたら、このチュートリアルを始める前に、Tutorial #1を終わらせて下さい。ここでは、複数のフォームを使ったテクニックを紹介します。
作成するプログラムの概要
ここで作るプログラムは2つのフォームを持っています。フォーム#1は、ユーザが誕生日と名前を入力するフォームです。フォーム#2では、この入力された値と誕生日が何曜日かを表示します。
プログラムの開発
1. 起動
- Windowsの「スタート」から「NS Basic CE Desktop IDE」を起動する。
- Openダイアログが開いたら、New Projectを開く。
- タイトルが"Form1"の空のフォームが現れます。
2. 最初のフォームのプロパティを変更
- Project Explorerにある"Form1"をクリックする。
- Propertiesウィンドウで、Nameプロパティを"MyForm1"へ変更する。
|
|
3. フォーム1のオブジェクトを構築
Dateオブジェクトを追加
- Toolbox上のDateオブジェクトをクリックする。
- フォーム上にマウスポインターを移動し、クリックしてオブジェクトを配置する。
- Propertiesウィンドウで、Nameプロパティを"birthdate"へ変更する。
|
|
名前を入力するフィールド追加
- Toolbox上のTextBoxオブジェクトをクリックする。
- フォーム上にマウスポインターを移動し、クリックしてオブジェクトを配置する。
- Propertiesウィンドウで、Nameプロパティを"textName"へ変更する。
- Propertiesウィンドウで、Textプロパティを"Enter Your Name"へ変更する。
|
|
フォーム2へ移動するためのボタンを追加
- Toolbox上のCommandButtonオブジェクトをクリックする。
- フォーム上にマウスポインターを移動し、クリックしてオブジェクトを配置する。
- Propertiesウィンドウで、Captionプロパティを"Show the Day of the Week"へ変更する。
|
|
4. 2番目のフォームを作成
- IDEのメインメニューから「Project」をクリックし、「Add
Form」を選ぶ。
- Propertiesウィンドウで、Nameプロパティを"MyForm2"へ変更する。
5. フォーム2のオブジェクトを構築
Birthdayテキストラベルを追加
- Toolbox上のLabelオブジェクトをクリックする。
- フォーム上にマウスポインターを移動し、クリックしてオブジェクトを配置する。
- Propertiesウィンドウで、Captionプロパティを"Birthday ="へ変更する。
|
|
Birthdayフィールドを追加
- Toolbox上のTextBoxオブジェクトをクリックする。
- フォーム上にマウスポインターを移動し、クリックしてオブジェクトを配置する。
- Propertiesウィンドウで、Nameプロパティを"textDate2"へ変更する。
Nameテキストラベルを追加
- Toolbox上のLabelオブジェクトをクリックする。
- フォーム上にマウスポインターを移動し、クリックしてオブジェクトを配置する。
- Propertiesウィンドウで、Captionプロパティを"Name ="へ変更する。
Nameフィールドを追加
- Toolbox上のTextBoxオブジェクトをクリックする。
- フォーム上にマウスポインターを移動し、クリックしてオブジェクトを配置する。
- Propertiesウィンドウで、Nameプロパティを"textName2"へ変更する。
|
|
Day-of-the-weekテキストラベルを追加
- Toolbox上のLabelオブジェクトをクリックする。
- フォーム上にマウスポインターを移動し、クリックしてオブジェクトを配置する。
- Propertiesウィンドウで、Captionプロパティを"Day-of-the-week ="へ変更する。
Day-of-the-weekフィールドを追加
- Toolbox上のTextBoxオブジェクトをクリックする。
- フォーム上にマウスポインターを移動し、クリックしてオブジェクトを配置する。
- Propertiesウィンドウで、Nameプロパティを"textDayName"へ変更する。
フォーム1へ移動するためのボタンを追加
- Toolbox上のCommandButtonオブジェクトをクリックする。
- フォーム上にマウスポインターを移動し、クリックしてオブジェクトを配置する。
- Propertiesウィンドウで、Captionプロパティを"Go Back"へ変更する。
|
6. プログラムの起動時に実行されるコードを追加
7. フォーム2へ制御を移すコードを追加
ユーザが「Show the Day of the Week」ボタンをタップした時、2番目のフォームを表示するようにします。
- スクリーン上のボタンをダブルクリックしてコードウィンドウを開く。
- SUBステートメントの次のラインから以下のコードをタイプする。
MyName = textName.text
MyDate = dateBirth.text
MyForm1_Hide
MyForm2_Show
このコードは、以下のことを行います。
- フォーム1が消えると、ユーザから入力されたフォーム上のデータは、どこかに保管しておかない限り失われます。ユーザから入力されるデータはこの時点でどこにも保管されていませんので、フォームが消える前に保管します。textName.textはフォーム上のフィールドから名前の値を抜き出し、変数"MyName"へ保管します。このグローバル変数に保管することにより、後でフォーム2でもデータへのアクセスが行えます。同様に、Dateオブジェクトからの値を変数"MyDate"へ保管します。
- MyForm1_HideとMyForm2_Showメソッドは制御をフォーム2へ移します。
8. フォーム2オブジェクトのコードを追加
- フォーム上のオブジェクトがない部分をダブルクリックし、コードウィンドウを開く。
- SUBステートメントの次のラインから以下のコードをタイプする。
textName2.text = MyName
textDate2.text = MyDate
textDayName.text = WeekDayName(WeekDay(MyDate))
このコードは、CEデバイスがフォームを表示する前にフィールドをデータで埋めます。
- 最初のラインは、グローバル変数"MyName"の値を、ユーザの名前を入れるフィールド"textName2"へセットします。これはフォーム1でユーザが入力した値です。
- 次のラインは、グローバル変数"MyDate"の値を、ユーザの誕生日を入れるフィールド"textDate2"へセットします。これはフォーム1でユーザがDateセレクターから選んだ値です。
- 最後のラインは、 "Day-of-the-week"フィールドをセットします。WeekDay()関数はMyDateを受け取り、曜日を示す1〜7の数値を返します。この値をWeekDayName()関数へ渡し、文字列表記の曜日を受け取ります。この文字列を"textDayNam"フィールドにセットします。
9. 「Go Back」ボタンにフォーム1へ戻るためのコードを追加
- スクリーン上のボタンをダブルクリックし、コードウィンドウを開く。
- SUBステートメントの次のラインから以下のコードをタイプする。
MyForm2_Hide
MyForm1_Show
10. スタート
- プロジェクトを保存する。
適当な場所に"MyProject.nsb"としてプロジェクトを保存して下さい。すべてのフォーム定義、オブジェクト、コード、およびプロジェクトの情報は、1つのプロジェクトファイルに保存される。
- IDEのメインメニューの「Run」から「Start」を選ぶ。
エラーがある場合、エラーメッセージが現れ、このダイアログボックスからデバッグ用のデバッガーが選択できます。エラーすべて取り除き、エラーがなくなるまで「Start」を繰り返して下さい。エラーを修正した時は、プロジェクトを再度保存して下さい。
実機を使ってプログラムを実行して下さい。
おめでとうございます。これでこのプログラムは完成です。
プロジェクトのテスト
EmCEはDateオブジェクトをサポートしていませんので、CEデバイスを使ってテストして下さい。
- 「Tools」メニューから「Options」を選び、ダイアログ中の「Start」タブをクリックする。
- 「Start
Program」セクションの「ActiveSync to Device」を選び、「Run Automatically」をチェックする。
- 「Device Install Path」フィールドに、Pocket PCの場合は"\My Documents"を、他のデバイスの場合は"\"をタイプする。
- 「Run」メインメニューから「Start」を選んで、プログラムを実行する。
- ActiveSyncが終わると、プログラムが実行されます。
|