第8章 複数のフォームを持つプログラム −処理の分割−

第8章の構成
8-1 プロジェクトマネージャによるユニット・プロジェクト名の確認
8-2 ユニットの追加・削除
8-3 他のフォームにあるコンポーネントの参照
8-4 CG 描画ソフトの作成(1) −複数フォームの用意−
8-5 CG 描画ソフトの作成(2) −処理の分割−
8-6 CG 描画ソフトの作成(3) −toolsユニットへの追加−
8-7 CG 描画ソフトの作成(3) −ユニットの受け渡し−

【学習内容とねらい】

本章では、複数のフォームを持つプログラムを作成します。 少し本格的なプログラムになると、複数のフォームを使用する必要性が出てきます。その際に必要になる操作あるいは基本知識について、8-1〜8-3で学習します。 さて、8-1〜8-3は基礎知識の確認であり、実は本章のねらいは8-4以下にあります。そのねらいとは、プログラムの設計に必要な"処理 (あるいは工程) の分割"という概念の理解にあります。

"処理の分割"について、まず自動車製造の工程を例にとって考えましょう。車はエンジン部やボディ部そしてホイール部など、各部分毎に規格を決めて、それぞれが専門にそして独立に製造を行っています。そして最後にそれらを設計図にしたがって組み立てます。これにより生産性を高めているわけです。また問題への対処もしやすくなります。例えばエンジン性能に問題があるという苦情があれば、エンジン製造過程のみを見直せばよく、ボディやホイール等の他の製造過程はストップする必要はありません。また、エンジンは同じでも、ボディ部分を変えれば新車種として製造することができ、製品開発も効率的です。

ところがこれを車種毎に一つの工場を決め、一連の製造過程をそこで全て行うようにしたらどうでしょうか? 今度は、エンジンやホイール等、一部でも問題が発生すると工場全体がストップしてしまいます。また、モデルチェンジする毎に製造ライン全てを更新しなければなりません。明らかにこれは効率が悪いですね。

このように製造工程を幾つかの独立した工程に分割して製造を進めることは自動車に限らず製品開発の現場では普通に行われていることです。このことはプログラミングについてもあてはまります。つまり、処理過程をいくつかの独立した工程に分割し、それぞれの工程に応じたプログラムを作成すれば、再利用あるいは更新がより容易になることが期待されます。実は、簡単化して言うと、この独立した各プログラムが Delphi で言うユニットに対応します。

10-4節以降では、簡単な CG 描画プログラムの作成という題材を用いて、CG を描いて表示するという一連の過程をいくつかのユニットに分割するという例を示します。実際には、かなり本格的なプログラム作成を経験しなければ、複数のユニットへの処理の分割の必要性は感じないかもしれません。しかし、本文を読むことで、大まかな理解はできるものと思います。そうすれば、より本格的なプログラミングへ進むための準備は整ったことになります。