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

【基礎課題 2-1】

【基礎課題 1-7】で作ったフォームをもとに、コピープログラムを作りましょう。

まず、各コンポーネントの「Name」プロパティを次のように指定します。

コピープログラムとは、

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

というプログラムです。

このプログラムの処理は、

  1. 「コピー」ボタンをクリックしたときに“ある処理”を行う。
  2. その処理とは「上のエディット欄に入力した文字を下のエディット欄にコピーする」ことである。

という2点がポイントになります。

まず、1. から説明します。

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

すると、次のような画面が現れます。

この画面の意味

Form1 の上にある ButtonCopy を Click したときの処理内容は、以下の通り。
はじまり

おわり

beginend;の間に、「ButtonCopy」をクリックしたときにしたいこと (この課題では、「上のエディット欄に入力した文字を下のエディット欄にコピーする」こと) を書きます。

それでは、「2. 上のエディット欄に入力した文字を下のエディット欄にコピーする」ことを、Delphi ではどのように記述するのでしょうか。

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

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

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

ところで、Delphi では、「EditFromText プロパティ」を、

EditFrom.Text

という形式で書き表す事になっています。

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

したがって、「上のエディット欄に入力した文字を下のエディット欄にコピーする」を Delphi の言葉に直すと、

EditFrom.Text の中身 (値) を EditTo.Text にコピーする」

という事になります。

ここに、さらに「コピーする」という言葉は、プログラミングの世界では「代入する」という言葉に置き換えられます。「代入する」というと数学的な用語のように聞こえますが、値をそっくりそのままコピーするという意味に他なりません。

さぁ、それでは、コピープログラムを完成させましょう。

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

◆解説

◆注意

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

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

ここで人間とコンピュータの関係を少し考えてみましょう。

このように、人間とコンピュータの関係は、

ようになっています。

人間がコンピュータに対して何かをする時の、“何か(アクション)”をイベントといいます。それに対する処理内容を規定したもの(プログラム)を、イベントハンドラといいます。

例えば、上の【基礎課題 2-1】の例でいうと、

イベント [コピー] ボタンのクリック
イベントハンドラ EditFrom.Text の値を EditTo.Text にコピーするプログラム」

となります。

Delphi では、「あるイベントが発生すると、それに対応したイベントハンドラが起動する」という形でプログラムが動作します。

そして、各コンポーネントには、それぞれ(必要と思われる)「イベント」が用意されています。そこで、プログラム開発者の行う仕事は

という事になります。

1年生の「情報処理」では、主に、あるイベントに対してどういうイベントハンドラが起動するのかを学習してきたといえます。

2年生のプログラミングでは、イベントハンドラの作り方と書き方を学習して行きます。

コラム ちょっと整理 - Delphi って何? PASCAL 言語を習うって聞いたけど…?

ここまで学習して来ても、「Delphi って結局何なの? 履修要項には PASCAL 言語を学習するってあったけど?」、「ビジュアルプログラミングというのが Delphi ?」等など、用語の意味がはっきりせず落ち着かない人が多いことと思います。ここで簡単に整理しておきましょう。

上で述べたように、イベントハンドラを作成 (記述) することがプログラマの主な仕事です。ここが、要するに「プログラムを書く」部分にあたる訳です。

さて、プログラムを書くことを「コーディング」と言います。そしてコーディングはプログラミング言語を用いて行います。Delphi ではそのプログラミング言語として「PASCAL」言語を採用しています。言語である以上、その書き方には一定のルール、すなわち「文法」があります。実は、前出の「◆解説」で述べた

:=」は代入を意味する命令、 文の区切りは「;

などは、PASCAL 言語の文法だったのです。コーディングの仕方を学ぶということは、PASCAL 言語の文法事項を学習する、ということを意味します。「文法」というと嫌悪感を持つ人もいるかもしれませんね。しかし、「英語」の文法などよりもはるかに簡単 (簡潔) です。なぜなら簡単でなければコンピュータが理解 (解読) できないからです。どうか安心して、自信を持って学習してください。

一方、コンポーネントの貼り付けや各プロパティの指定という作業は、コーディングとは独立です。これを可能にしたのが、ビジュアルプログラミング機能と呼ばれるものです。そして、PASCAL 言語によるコーディングにビジュアルプログラミングの機能を付加したものが「Delphi」なのです。Delphi ではプログラムの開発から実行までに必要な機能が全て備わっています。その意味で、「Delphi」は「統合プログラム開発環境」と呼ばれます。なお、「C++ 言語」にビジュアルプログラミング機能を付加したものが「プログラミング A」で学習している「C++Builder」です。Delphi の兄弟のようなものと言えます。