> procedure TForm1.Button1Click(Sender: TObject);
> Type
>   MySet = (chris, john, bob, mary, fred, pam);
>   MyXSet =  set of MySet;
> Var
>   y : MyXSet;
>   j : Integer;
>   Size : Integer;
> begin
>   y := [chris, pam, mary];
>   Size := 0;
>   for j := ord(Low(MySet)) to ord(high(MySet)) do    // Iterate
>     if (MySet(j) in y) then
>       Inc(Size);
>   ShowMessage('size = '+Inttostr(Size));
> end;
> 
> There is probally a better way..

Only getting rid of some unnecessary casts and references to Type names.

procedure TForm1.Button1Click(Sender: TObject);
type
  TMyEnum = (meOne,meTwo,meThree);
  TMyEnums = set of TMyEnum;
var
  Y :TMyEnums;
  Size :Integer;
  J :TMyEnum;
begin
  Size := 0;
  for J := Low(J) to High(J) do if J in Y then inc(Size);
  ShowMessage('Size = '+IntToStr(Size));
end;

--
Aaron Scott-Boddendijk
Jump Productions
(07) 838-3371 Voice
(07) 838-3372 Fax


---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz

Reply via email to