16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"集合型プロパティの設定"
この発言に対し以下のコメントが寄せられています
#00244 T. Kawanishi さん Re:集合型プロパティの設定
コンポーネントのプロパティなどでよくある集合型をアプリケーション
で設定する方法です。
例えば PlayingCardというコンポーネントに Suitesというプロパティが
あって、次のように型定義されているものとします。
Type
TSuite = ( csHeart, csDiamonds, csSpade, csClub );
TSuites = set of TSuite;
これをShowModalした Form2のチェックボックスで True/False切替えをし
ます。わざわざ配列定数を用意するのがどうもタコな気がしますが、見て
やってください。
--------------------------------------------------
unit Form2;
(中略)
implementation
{$R *.DFM}
uses
Form1;
const
//集合型の各要素にアクセスするため配列定数を用意する
TheSuites: array[0..3] of TSuite = ( csHeart, csDiamonds,
csSpade, csClub );
// メインフォームからオプションダイアログを開いた時の処理
procedure TForm2.FormShow(Sender: TObject);
var
i: Integer;
begin
//集合型に含まれる要素に対応するチェックボックスにチェックを入れる
for i:= 0 to 3 do
(FindComponent('CheckBox'+IntToStr(i)) as TCheckBox).Checked:=
TheSuites[i] in Form1.PlayingCard.Suites;
end;
// Okボタンでオプションダイアログを閉じた場合の処理
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
var
i: Integer;
Tmp: TSuites;
begin
if ModalResult <> mrOK then Exit;
//チェックされたチェックボックスに対応する要素を集合型に組み入れる
Tmp:= [];
for i:= 0 to 3 do
if (FindComponent('CheckBox'+IntToStr(i)) as TCheckBox).Checked
then Tmp:= Tmp + [TheSuites[i]];
Form1.PlayingCard.Suites:= Tmp;
end;
☆ H-Triton (^^) since 1996 ☆
Avalon's Friendly Club #80008
♪ Merry X'mas from ☆FDELPHI Sample Magazine ♪
Original document by H-Triton 氏 ID:(QZV11422)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|