for i:=0 to ComponentCount-1 do
  begin
    if Components[i] is TmenuItem then
    begin
      if ((findcomponent(Components[i].name) as Tmenuitem).Tag>=2)and ((findcomponent(Components[i].name) as Tmenuitem).Tag<=5) then
      begin
        (findcomponent(Components[i].Name) as Tmenuitem).Enabled:=false;
      end;
    end;
  end;

解决方案 »

  1.   

    procedure TForm1.btn1Click(Sender: TObject);
    var
      i:Integer;
    begin
    for i:=0 to ComponentCount-1 do
      begin
        if Components[i] is TmenuItem then
        begin
          if (Components[i].Tag >=2) and (Components[i].Tag <= 5) then
    //      if ((findcomponent(Components[i].name) as Tmenuitem).Tag>=2)and ((findcomponent(Components[i].name) as Tmenuitem).Tag<=5) then
          begin
            (findcomponent(Components[i].Name) as Tmenuitem).Enabled:=false;      end;
        end;
      end;end;
      

  2.   

    需要这么麻烦吗?
    for i:=0 to ComponentCount-1 do
      begin
        if Components[i] is TmenuItem then
        begin
          if TmenuItem(Components[i]).Tag in [2..5] then
          begin
            TmenuItem(Components[i]).Enabled:=false;
          end;
        end;
      end;
      

  3.   

    for i:=0 to ComponentCount-1 do
      begin
        if Components[i] is TmenuItem then
        begin
          if TmenuItem(Components[i]).Tag>=2)and TmenuItem(Components[i].Tag<=5) then
          begin
          //如果要判斷名字 
            if TmenuItem(Components[i]).name = '..' then
              TmenuItem(Components[i]).Enabled:=false;
          end;
        end;
      end;