有菜单 N1 N2 ...N10
现在想动态修改菜单的Caption
定义数组2个 分别是 menuname[11],chinese[11] 字符串string类型
然后程序如下:    for i :=1 to 10 do
    begin
      menuname[i]:= 'n'+inttostr(i);
      chinese[i]:= '中文'+inttostr(i);
      menuname[i].caption :=chinese[i];//这句有问题,如何修改。
    end;谢谢大家的帮助。

解决方案 »

  1.   

    menuname[i].caption 
    数组是没有caption的老大。
      

  2.   

    menuname[i].caption :=chinese[i];//这句有问题,如何修改。
    menuname[i]就是菜单的name。
      

  3.   

    我想让这句menuname[i].caption :=chinese[i];的效果等同于
    n1.caption:=chinese[1];
    n2.caption:=chinese[2];
    .
    .
    .n10.caption:=chinese[10];
      

  4.   

    MainMenu1.Items[i].Caption中的i 是什么啊?
      

  5.   

    MainMenu1.Items[i+1].Caption :=chinese[i];
      

  6.   

    if state='1' then
          begin
           N1.Caption :=chinese[1];
           N2.Caption :=chinese[2];
           N3.Caption :=chinese[3];
           N4.Caption :=chinese[4];
           N5.Caption :=chinese[5];
           N6.Caption :=chinese[6];
           N7.Caption :=chinese[7];
           N8.Caption :=chinese[8];
           N9.Caption :=chinese[9];
           N10.Caption :=chinese[10];
          end
        else
          begin
           N1.Caption :=english[1];
           N2.Caption :=english[2];
           N3.Caption :=english[3];
           N4.Caption :=english[4];
           N5.Caption :=english[5];
           N6.Caption :=english[6];
           N7.Caption :=english[7];
           N8.Caption :=english[8];
           N9.Caption :=english[9];
           N10.Caption :=english[10];
          end;
    怎么能采用循环写出上面的程序。
      

  7.   

    如果menuname是字符串数组的话可以这样写。    for i :=1 to 10 do
        begin
          menuname[i]:= 'n'+inttostr(i);
          chinese[i]:= '中文'+inttostr(i);
          (FindComponent(menuname[i]) as TMenuItem).caption :=chinese[i];
        end;