列挙型と集合型
VB5には列挙型が導入されたようですが、VBから Delphiに移行してつまづく要素のひとつに「列挙型・集合型」があります。列挙 型はたくさんの中からひとつ、集合型はたくさんの中から複数選ぶ可能性がある 場合に使用します。例えばフォントの色、これはたくさんの色の中からひとつだ けを選ぶので列挙型です。ダイアログに表示するボタン、これは OKだけの場合もあれば OKとキャンセルのふたつの場合も考えられます。です ので集合型です。では実際にコードでの使用例を見てみましょう。
| ■ 列挙型の例 |
procedure TForm1.Button1Click(Sender: TObject);
type
//列挙型の定義
TIro = (iroRed, iroGreen, iroBlue);
var
//列挙型変数の宣言
Iro : TIro;
begin
//代入する時
iro := iroRed;
//比較する時
if iro = iroRed then
begin
ShowMessage('赤い');
end;
end;
|
このように列挙型は普通の変数の場合とあまり違いはありません。
しかし 集合型は使い方が違ってきます。
| ■ 集合型の例 |
procedure TForm1.Button1Click(Sender: TObject);
type
//集合型の定義
TDispBtn = Set of (dspOK, dspCancel, dspHelp);
var
//集合型変数の宣言
DispBtn : TDispBtn;
begin
//代入する時
DispBtn := [dspOK];
//現在の集合に追加する時
DispBtn := DispBtn + [dspCancel];
//現在の集合から削除する時
DispBtn := DispBtn - [dspOK];
//比較する時
if dspCancel in DispBtn then
begin
ShowMessage('キャンセルみっけ');
end;
end;
|