我在模块中定义如下变量:
Public Type ActiveFlag
BookMessageFlag As Boolean
BookSeekOrderFlag As Boolean
BorrowMessageFlag As Boolean
FrmAboutFlag As Boolean
MyMessage As Boolean
PublishFrmFlag As Boolean
ReaderBorrowSeekFlag As Boolean
ReaderMessageFlag As Boolean
ReturnMessageFlag As Boolean
TypeFrmFlag As Boolean
End Type
Public ActiveFlag1 As ActiveFlag这个activeflag1里面有一个值为TRUE,是不是一定要用IF....THEN...来判断,就没有方
法可以用FOR...NEXT吗?那如果里面有几十个变量怎么办?

解决方案 »

  1.   

    是不是只要有一个值为true,activeflag返回true啊?
      

  2.   

    只要里面一个变量为"TRUE"就返回了
      

  3.   

    你是不是想找到这个类型中为 True 的那个布尔变量?
    改成数组,或用指针。
      

  4.   

    就是呀,如果都是相同的类型可以用数组嘛,自定义类型没有像集合那样用 for each的
    用数组又高效又方便
      

  5.   

    这个我知道,可是数组不能定义成PUBLIC,除非要在模块里面,才能让多个窗体共享这个变量
      

  6.   

    对于这个type有办法
    dim tval(0 to 9) as Boolean
    copymemory tval(0),ActiveFlag1 , len(ActiveFlag1)
    for i=0 to 9
    if tval(i) then
    .....
    end if
    next i
    copymemory 是api函数,因为ActiveFlag1里面所有的元素都是Boolean
    所以用copymemory将ActiveFlag1 的内容复制给tval的各个元素
      

  7.   

    不过好象应该是
    copymemory tval(0),ActiveFlag1 , lenb(ActiveFlag1)
      

  8.   

    不需要lenb,len就可以了
    因为ActiveFlag1不是string