3.1 Object Pascalの基礎知識~序章~

はじめに

さて、本章ではDelphiプログラミングの本質、「Object Pascal」を使った実践的プログラミングに入っていきます。
ただ、Delphiプログラミングは大変奥が深く、仮に本章ですべての機能を網羅した場合、プロフェッショナル向けでこそあっても、初心者には到底理解し難い内容になってしまいます。そこで本章では、基礎の基礎を押さえた初歩的なプログラムを作ります。第2章で作ったメモ帳をベースに幾分機能を拡張したメモ帳を作ります。それでは始めましょう。

その前に、delphi のソースコードの構造化を説明していきましょう。
まず、第2章の計算プログラムは保存せずに閉じてしまって構いません。

メニューから、「ファイル」→「新規作成」→「その他」をクリックし、新規作成の際のダイアログを表示します。ダイアログ上でvclフォームアプリケーションを選択します。

次に、プロジェクトマネージャーから「新規プロジェクトを追加」ボタンを押します。
そして新規作成の際のダイアログを表示し、そこから 「マルチデバイスアプリケーション」を選択します。

さて、これで準備は整いました。
では説明に入っていきます。
まずは vclフォーム アプリケーションからです。
プロジェクトマネージャからProject1.EXEをダブルクリックしてから、 unit1.pasをダブルクリックし、Unit1にフォーカスを移します。

ソースコードの各部の意味

パスカルのソースコードの形式

unit Unit1;

unitキーワードの後ろにユニット名を記述します。 このユニット名はファイル名になりますが、自動的に設定されるため、手動で変更する必要は先ずありません。

Interface

インターフェース部と読みます。
各種の定義と宣言を記述します。
直接のプログラムコード(実行部分)は記述できません。

Uses

ファイル内で利用する、クラスを記述します。ここで言うクラスとはDelphiの関数やライブラリが記述された独立したファイルであり、別名「クラスライブラリ」とも呼びます。多くの場合、ここには自動でクラスが登録されていきます。手動で変更する必要がある場合は開発者(つまりあなた)が直接Delphiの機能を呼び出す場合などです。

Type

型の定義を記述します。
型名=型の定義、
といった形で型を定義していきます。

Private
    { Private 宣言 }
  Public
    { Public 宣言 }
  end;

【Private 宣言とPublic 宣言について】
Private 宣言とはプライベートの空間という意味です。
つまりこの例で言うと、Unit1.pas内部でのみ使えます。
外部のユニット、つまり、Unit2等はUnit1のプライベートに立ち入ることはできません。そのため、このプライベート空間に書かれた宣言はUnit 2は参照する事は出来ません。
対して、 Public 宣言は文字通りパブリックな空間という意味です。
当然ながら、パブリックは公共という意味ですので、ここに書かれた宣言はプロジェクト全体で共有されます。

注意が必要なのは宣言の管理です。ここで書かれた宣言は「グローバル」な宣言になります。 プライベートであれ、パブリックであれ、ユニット内もしくはプロジェクト内で共有されます。
例えば、この種の宣言をいたずらに多数行った場合、「名前空間が汚れる」 といった現象が起きます。
これはグローバル変数を多数宣言することにより、似たような名前、似たような機能の変数が宣言されることにより、変数管理が難しくなる現象のこと指します。そのため、無用のグローバル変数はなるべく避けた方が賢明でしょう。

var

変数の宣言を記述します。
これは大変よく使いますので、必ず覚えましょう。

Implementation

「実装部」とも呼びます。
関数や手続きなどの処理を記述します。
型の定義や変数宣言を行うこともできます。

Initialization

{初期化部}
この初期化部に記述されたコードはプログラム開始自動的に実行されます。
ただし、このコードは省略可能なため、使用時には宣言を入力する必要があります。
ソースコードの一番下、「end.」の上に記述します。

Finalization

{終了処理部}
この終了処理部に記述されたコードはプログラム終了直前に実行されます。
ただし、このコードは省略可能なため、使用時には専念を入力する必要があります。
ソースコードの一番下、「end.」の上に記述します。

{$R *.dfm}

この記号は「フォームが存在します」と言う IDE 内部が使う記号です。
この記号がないと、リンカがフォームファイル(*.dfm)を見つけられなくなってしまいます。


一つの宣言や処理を行う単位となります。
ちなみに、この1行当たりの文の事をステップと呼びます。
また、文には大文字、小文字の区別はありません。
(例:10行=10ステップ)

ブロック
Begin と end で囲まれた範囲のことを指します。
特徴として、複数の処理をまとめることができます。
また、このブロックとは処理のまとまりを示します。

コメント
ソースコード注釈のことを指します。
コメントの種類には、

//1ステップをコメント化します。

(*
この記号に挟まれた範囲は、
全てコメントとなります。
*)

{
この記号に挟まれた範囲は、
全てコメントとなります。
}

end.

ソースコードの終端記号です。
この記号より先にはソースコードがあってはいけません。

では、プロジェクトマネージャー から、 Project 2. EXE の下にあるunit2.pasをダブルクリックし、フォーカスを映します。

Fire Monkeyアプリケーションも、基本的な構文は同じです。

{$R *.fmx}

この記号が若干異なり、dfmからfmx になっています。
機能は全く同じです。

ここで、usesの宣言のところよく見てください。
先ほどのvcl アプリケーションのusesの宣言とはクラスの名前が若干異なることに気がついたかと思います。同じ delphi アプリケーションですが、vcl とマルチデバイス(Fire Monkey)では使用するコンポーネント全く異なります。 いくつかのクラスは vcl と共通のものはありますが、fmx で始まるクラス名はマルチデバイスアプリケーション(Fire Monkey)独自のクラスになります。

基本的な説明は以上になります

タグ: , , , ,