クラス型
クラスって学校の組のようですね。
- 「クラス」とは、特定のデータや処理をひとまとめにしたものです。英語では「class」と書き、「分類」「種類」「仲間」といった同種の集まりの意味があります。クラスから作られたものを「オブジェクト」(もの)といい、オブジェクト指向では、クラスやオブジェクトを組み合わせてプログラムを作ります。
- オブジェクト指向のクラスは、オブジェクトの性質と振る舞いを決める設計図とも言えます。 「クラス」という設計図を基にしてオブジェクトの実体を作りますが、この実体をインスタンス(instance:実例)といいます。クラスに対して、具体的なデータを持つ個々のオブジェクトがインスタンスです。
- クラス型は、レコード型のように複数の要素を保持できますが、データ型だけでなく、手続きや関数も要素とすることができます。この要素をメンバーと呼ぶこともあります。
- スコープは、変数や手続きの有効範囲を示します。
private プライベートメンバー(クラス内部でのみ利用) protected プロテクテッドメンバー(子クラスからは直接メンバーを使用できる) public パブリックメンバー(クラスの外からも使用可能) published パブリッシュドメンバー(実行時型情報を生成)
- 各メンバーには次の3種類があります。
フィールド(変数)、メソッド(関数や手続き)、プロパティ(フィールドとメソッドの組み合わせ)
【書式】
Type
識別子 = class
フィールド;
メソッド;
プロパティ;
end;
【定義方法】
- 新しいユニットファイルを作ります(ファイル→新規作成→ユニット)
- 空っぽのユニットファイルができますので、名前を付けて保存します。

- interfaceの下にuses節を追加し、インポートする外部ユニットを記述します。
※unit1を参考にするとよいかも。 - implementaitionの下に具体的に手続きや関数を、「クラス名.メソッド名」という形で記入します。
クラス名は、Typeを意味する「T」で始められることが多く、フィールド名は「F」で始められることが多いようです。
本の説明ではよくわからないので、こちら様(Seventh Delphi)のソースをお借りして試してみました。だいぶ前にアップロードされた記事のようですが、Delphi2006でも動きました。
TEditを使って新しく、TMyEditというクラスを生成しているのではないかと思います。
【実行結果】
【サンプルコード】 こちらは書籍を参考に自分で書いてみました。
unit Unit1;
interface
uses
//外部ユニットを読み込む
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm) //クラスの宣言。親と同じ要素を継承
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);//自動でできた手続き宣言
private
{ Private declarations }
public //クラスを構成するメンバーの一部
{ Public declarations }
Procedure SetMsg; //手続きを宣言
end;
var //var宣言部
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
SetMsg; //手続きの呼び出し
end;
procedure TForm1.SetMsg; //手続き(クラス名が必要)
begin
Edit1.Text := 'こんにちは'; //Edit1の前にクラス名は不要
end;
end.
【実行結果】

