我有10个popup菜单,但是name都是按n1,n2,n3....n200,这样排列的,我想点其中一个,打开在我以下的数组里的一个网页,这个函数应该怎么写:var
  A:Variant;
  i : integer;
begin
  A := varArrayCreate([0,200],varVariant);
  A[0] := www.163.com;
  A[1] := www.sohu.com;
  A[2] := www.sina.com.cn;
  A[3] := www.pconline.com.cn;
  A[4] := www.tom.com;
  ..........
  A[200] :=www.qq.com
  for i :=0 to 200 do
    if VarIsEmpty(A[i]) then
    begin
      ShowMessage(IntToStr(j));
      Break;
    end;procedure TForm1.N[n]Click(Sender: TObject);
begin
webbrowser1.navigate(a[n]);
end;这样肯定是错的,但是按照这个思路这个数组和这个函数应该怎么写,先在这里谢谢大家了!

解决方案 »

  1.   

    因为每个popup菜单上的选项比较多,但是name完都是按规律排列的,请大侠们帮帮忙!
      

  2.   

    首先如果你一定要用你现在这个方面可以建立一个
    procedure MenuClick(Sender: TObject);
    procedure TForm1.MenuClick(Sender: TObject);
    var i: Integer;
    begin
      i := StrToInt(copy ((Sender as TMenu).Name, 1, 3));
      webbrowser1.navigate(a[i]);
    end;
    或者也可以把每个菜单项的TAG值设置为对应的数组下标。
      

  3.   

    MenuClick()函数的作用是什么啊,能告诉我吗?每次选中一个选项是不是就可以触发?如果按照我的想法,只需要换你这个函数是不是就可以解决了啊?大家都来看看啊!
      

  4.   

    MenuClick()函数的作用是什么啊,能告诉我吗?
    ///////////就是一个所有选项都可用的函数,可以赋给所有选项的OnClick事件...
      

  5.   

    i := StrToInt(copy ((Sender as TMenu).Name, 1, 3));这一行没有指明是POPUP的选项,好我程序里还有按钮,文本框等许多控件,都在这个里面吗??
    (Sender as TMenu).Name中的这个Name是不是可以设置的,如果是我上面的那种命名,应该怎么写?
    请再帮帮吧!
      

  6.   

    1、每个菜单项都有一个tag属性,一次设置n0,n1...n200的tag值为0,1...200
    2、所有菜单项的单击事件都指向一个函数MenuClick
    procedure TForm1.MenuClick(Sender: TObject);
    begin
      webbrowser1.navigate(a[(Sender as TMenuItem).tag]);
    end;
      

  7.   

    每个都设TAG?name有排列好的规律,n2,n3,n4...这样不能用吗?我觉得这个简单多了啊
      

  8.   

    10个popupMenu菜单,n1,n2,n3....n10;
    每个 popupMenu 有20个 TMenuItem ;
    每个 TMenuItem 的Tag 依次、分别是0、1、2、3……199;
    点其中一个,打开在以下的数组里的一个网页,这个函数应该怎么写:var
      A:Array[0..199]of String;
      i : integer;
    begin
      SetLength(A,200);
      A[0] := www.163.com;
      A[1] := www.sohu.com;
      A[2] := www.sina.com.cn;
      A[3] := www.pconline.com.cn;
      A[4] := www.tom.com;
      ..........
      A[199] :=www.qq.com  for i :=Low(A) to High(A) do
        if A[i]='' then  begin
          ShowMessage('第 '+IntToStr(i+1)+' 为空!');
          Break;
        end;
    procedure TForm1.PopupMenuClick(Sender: TObject);
    var n:Integer;
    begin
      n:=(Sender as PopupMenu).tag;
      if a[n]<>'' then
        webbrowser1.navigate(a[n]);
    end;