TYPE
  TUserSayType = (us_All, us_Hear, us_Whisper, us_Cry, us_Group, us_Guild, us_Sys, us_Custom, us_None);  TUserSaySet = set of TUserSayType;procedure TDrawScreen.ChangeTransferMsg(UserSaySet: TUserSaySet);
var
  i,i1: Integer;
  UserSayType: TUserSayType;
begin  for UserSayType in UserSaySet do
    g_SayEffectIndex[UserSayType] := False;
end;在DELPHI2007工程下的代码是这样 但因为DELPHI7不支持FOR IN DO 所以帮忙把  for UserSayType in UserSaySet do转成D7下的FOR I:=0 TO X DO 这样的形式

解决方案 »

  1.   

    e:TUserSayType;for e:=us_All to us_None do
      if e in UserSaySet then
        g_SayEffectIndex[e] := False;
      

  2.   

    procedure TForm1.FormCreate(Sender: TObject);
    TYPE
      TUserSayType = (us_All, us_Hear, us_Whisper, us_Cry, us_Group, us_Guild, us_Sys, us_Custom, us_None);
      TUserSaySet = set of TUserSayType;
    var
      vSet : TUserSaySet;
      vType : TUserSayType;
      nCounter : integer;
    begin
      vSet := [us_Whisper, us_Group, us_Guild];  nCounter := 0;
      for vType := Low(TUserSayType) to High(TUserSayType) do
      begin
        if vType in vSet then
          Inc(nCounter);
      end;
    end;