列挙型と集合型
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; |