2−1 コピープログラムを作ろう


☆ 総目次へ ★ 第2章節へ ★ 前節へ ★ 次節へ ☆

『Delphi入門』
 2-1コピープログラムを作ろう☆  
『Delphi入門』 2-1コピープログラムを作ろう

総目次へ ★ 第2章節へ ★ 前節へ ★ 次節へ



 C++Builderでは、「あるイベントが発生すると、それに対応したイベントハンドラが起動する」という形で、プログラムが動作します。
そして、各コンポーネントには、それぞれ(必要と思われる)「イベント」が用意されています。
そこで、プログラム開発の行う仕事は

    ・適当なイベントを(オブジェクトインスペクタから)選択する。
    ・そのイベントに対するイベントハンドラを記述する。

ということになります。
基礎課題2-1

【基礎課題1-7】で作ったフォームのもとに、コピープログラムを作りましょう。まず各コンポーネントの「Name」プロパティを次のように指定します。

 コピープログラムとは

実行して
エディットに言葉を入力して
「コピー」ボタンを押すと
上のエディットに入力した言葉が、下のエディットにコピーされる

というプログラムです。

このプログラムの処理は、
  1. 「コピー」ボタンをクリックしたときに“ある処理”を行う。
  2. その処理とは「上のエディット欄に入力した文字を下のエディット欄のコピーする」ことである。
という2点がポイントになります。
2.「上のエディット欄に入力した文字を下のエディット欄のコピーする」
イベントハンドラの記述の仕方

すでに「1−3」で学習した通り、「エディット」コンポーネントの「Text」プロパティに入力した文字はエディット欄に表示されます。

逆に、プログラム実行時に「エディット」コンポーネントに入力された文字は、下のように「Text」プロパティに記憶(保存)されます。このように「Text」プロパティは文字が保存される“場所”と考えることができます。



 上方の「エディット」コンポーネントの名前は「EditFrom」であるので、上図の状態は、「EditFromコンポーネントのTextプロパティ」に「こんにちは」という文字が保存されている状態である、ということができます。

コンポーネント名->プロパティ名
  C++Builder Delphi
Edit(コンポーネント)のText(プロパティ)」の書き方は Edit->Text Edit.Text
という形式で書き表すことになっています。

しかし、C++では、場合によって「->」(アロー演算子)「.」(ドット演算子)を使い分けなければなりません。とりあえず、以下のように覚えておきましょう。
  • フォームやコンポーネントの場合は「->」を使う。
  • 自分で作った構造体や、AnsiString(第3章参照)、TRect(第7章参照)の場合は「.」を使う
  Delphiとの相違点  

同様に、「EditTo(下の「エディット」コンポーネント)のTextプロパティ」は「EditTo->Text」と書き表されます。

C++Builder Delphi
代入を命令するの記号  Edit1->Text = Edit2->Text; :Edit1.Text := Edit2.Text;
if文などに使われる比較演算子 == =

「;」は、分の区切りを表します。これはDelphiと同様です。
Delphiとの相違点

下の空欄を埋めて、プログラムを完成させてください。


注意  
プログラミングでは、命令はすべて半角文字で書きます。


実行して、動作を確かめてみましょう。うまくいけば【基礎課題2-1】は終了です。

                        基礎課題2−1 解答
1.「コピー」ボタンをクリックしたとき(イべント)に
イベントハンドラ”の作成方法

オブジェクトインスペクタから、何かをさせたい対象(この課題の場合はボタンなので、「ButtonCopy」)を選択する。 イベント」をクリックする。 この課題では、「ボタンをクリックしたとき」の処理を考えていたので、「OnClick」の右の空欄をダブルクリックする。

または、

ボタンコンポーネント」をダブルクリックします。

すると、次のような画面が現れます。
これが、C++Builderのイベントハンドラの基本形です。



1行目の”void__fastcallTForm1::ButtonCopyClick(Tobject*Sender)”は、これがButtonCopyをクリックしたときに実行される関数であることを表しています。
関数については、第5章で詳しく扱います。

C++Builder Delphi



begin end が { } に変わります。
 Delphiとの相違点 

 と  の間に、「ButtonCopy」をクリックしたとき(イベント)に対応した実行処理(この課題では、「上のエディット欄に入力した文字を下のエディット欄にコピーする」こと)を書きます。