| 第2章-1 EditField、PushButtonの使い方 |
|
第2章はコントロールの使い方についてできる限りたくさん紹介したいと思います。まず最初はEditField とPushButtonについてです。PushButtonはすでに、第1章で紹介していますのでここではさらっと行きた いと思います。 サンプルとしては次のようなものを作ります。これは、EditFieldにテキストを入力し入力完了ボタンを クリックするとスタティックテキストに(どこだか判りませんねぇ(^_^);)入力した内容が表示されるというもので す。また、EditFieldにテキストを入力し、最後にreturnキーを押しても同様に表示されます。どうやっているかに ついては後ほど説明いたします。ん?他にも何かやっているようですね?線が引いてあったりテキストに色が付いて いたり。この辺は最後にしましょう。大したことではないので。
EditFieldは文字通り、ユーザが編集可能なテキストフィールドです。下のスクリーンショットで赤く○で 囲んであるものがそれです。これを、ドラッグ&ドロップでWindow1の上に配置します。Window1のtitleプロパ ティには”第2章-1”と設定します。EditFiledのプロパティには今回特に手を加えません。デフォルトのままです。 NameプロパティはEditField1となります。実は、これだけでもプログラムを実行するとすでにEditFieldにテキスト の入力を行えるようになります。これは簡単です。DOSで同じ様なものを実現しようとしたらこうは簡単には 行きませんよぉ。
次に、PushButtonですが、これも、ドラッグ&ドロップでWindow1上に配置します。サンプルではCaption プロパティを入力完了に変更しています。NameプロパティはPushButton1になります。 次はStaticTextですがこのサンプルにはStaticTextが4つ表示されています。下のスクリーンショットで 赤く○で囲んであるのがそうです。すでに、文字が表示されている3つとこれから表示する1つです。StaticTextにプ ログラム上でテキストを表示させることは第1章でやりましたがあらかじめ初期値を設定しておいて使うこともできま すこの場合、Textプロパティに表示させたい内容を設定しておきます。
さて、コーディングですがまずPushButtonのイベントハンドラを書きます。PushButtonコントロールをダブル クリックしてコードエディタを起動しSub Action()に次のようにコーディングします。 ' 'このイベンとハンドラにはエディットボックス 'に入力された内容をスタティックテキストの表示内容 'に設定している処理が書かれています。 ' StaticText3.Text = EditField1.Text たったこれだけです。あんまり、寂しいのでコメントを書いてみました。赤字の部分がコメントです。REALbasic では ' または // ではじまる行はコメント行として扱われます。 コードの意味はStaticText3のTextプロパティにEditField1のTextプロパティの内容をロードする。 という意味です。これで、最初空欄になっているStaticText3にEditField1に入力したテキストが表示されます。 もうひとつ、EditFieldの中でreturnキーを押した場合も同様に最初空欄になっているStaticText3にEditFieldの 内容を表示させるようにします。これには、EditFieldをダブルクリックし、コードエディタを起動させ Function KeyDown(Key As String) As Boolean というハンドラに次のようにコーディングします。 ' 'このイベントハンドラはエディットボックスの中で何かキーが '押されると起動します。 'ここでは、エディットボックスへの入力の中でリターンキーが '押された場合、入力された内容をスタティックテキストに表示 'する処理を行っています ' '入力された文字(Key)がCR(キャリッジリターン)だった場合 if Asc(Key) =&h0d then 'エディットボックスの内容をスタティックテキストにコピー StaticText3.Text = EditField1.Text end if 最初にif文がありあます。何を判断しているかというと引数のKeyの内容がCR(キャリッジリターン) かどうかを判断しています。KeyにはEditField内で押されたキーが何であるかの情報が文字列として入ってい ます。これをASCIIコードに変換し16進数の(0D)hexかどうかでreturnキーが押されたかどうかを判断するわけで す。もし、returnキーであった場合は先ほどのPushButtonイベントハンドラの時と同様の処理を行います。本当はこの Function KeyDown(Key As String) As Boolean はBoolean型の戻り値を返すハンドラですので戻り値を設定して 終了するべきですが今回は省略します(よくないですね)。 以上でサンプルは出来上がりです。が、ここで、もう一つ便利な機能を説明します。ここまでの内容で PushButonをクリックしたときとEditField内でreturnキーを押したときで全く同じ処理がありました。それは SaticText3.Text = EditField1.Text という処理です。短い処理ですので何の抵抗もなく書けると思い ますがこれがもっと長くて複雑な処理だったとしたらどうでしょう。同じことを2回も書くのは面倒ですし効率が悪いで すよね。そこで、このような処理の為にメソッドというものがあります。このメソッドとは複数のイベントハン ドラから呼び出すことができる処理のことです。ちなみに、PushButtonイベントハンドラの中からEditFiledイベント ハンドラの処理を呼び出すことはできません(・・・確かめてない・・・けど・・・)。次のスクリーンショットを見て 下さい。
ここで、赤く○で囲んである部分にメソッドとあります。ここに、コードを書きます。書き方はまず、 REALbasicのメニューから編集→新規メソッドと選択します。すると、次のスクリーンショットのようなダイ アログが表示されます。 ここで、メソッドの名前をSetTextと設定します。パラメータや戻り値は今回は必要ありません。
メソッド名を書いてOKボタンをクリックするとコードエディタが Sub SetText() を記述できる状態で起動 されます。この時点でコードエディタブラウザにはSetTextメソッドが追加されています。ここで、次のようにコーディ ングします。 StaticText3.Text = EditField1.Text こうすることによって先ほどPushButtonとEditFieldの2つのイベントハンドラで同じ処理を呼び出していた部分 StaticText3.Text = EditField1.TextをSetTextと書くことができます。もっと長い処理だ とその効果が実感できると思います。 最後に、冒頭でちょっとふれました他のコントロールについてですが下のスクリーンショットで赤字の1と 2です1はSeparatorコントロール2はLineコントロールといいます。やはり、ドラッグ& ドロップで配置できます。機能的には特に無いと思います(まだ知らないだけかもしれませんが)。 何か、見つけたらまだあとで追記します。
もうひとつ。スタティックテキストに色が付いていますね。これはプロパティをいじります。下のスクリーンショ ットで赤く○で囲んである部分です。(囲むまでもなかったか。)
|
| 目次に戻る |