TczStt = (AA,BB,CC) ;  //枚举类型
  TczSttJH = set of TczStt ;  //集合类型问一下这个set 都干了什么,
还有set在DELPHI都能做什么工作,
今天公司老鸟和我说凡是掩码都可以用set,
不太明白是什么意思 ...望达人举例说明.

解决方案 »

  1.   

    ShowMessage(IntToStr(sizeof(TczSttJH)));TczSttJH 占用1字节.每个无素占用1位
      

  2.   

    集合可以做并、差、交、比较和包含运算。
    使用set比C/C++中用一套整型常量更优雅、安全。
    比如你的例子:
    type
    TczStt = (AA,BB,CC) ; //枚举类型
    TczSttJH = set of TczStt ; //集合类型
    var
      S1,S2: TczSttJH;
    //...
    s1 := [aa, bb];
    if [cc] in s1 then   // falses2 := s1 - [cc];     // [aa, bb]
    s2 := s1 - [aa];     // [bb]
    if s1 > s2 then      // trues1 := s1 * s2;       // [bb]
    if s1 = s2 then      // true