1、请问FindAction和FindComonent要引用那个单元啊?他们的作用分别是什么??2、我知道一个Ation的名称,我想把这个把一个菜单的Ation设为那个Ation,请么转换一下(一个字符串转换一个TAtion)3、有一个菜单(N级)我要把它转换为一棵树,请问怎么转换(递归)?

解决方案 »

  1.   

    第三个问题完整代码:写一个函数AddAMenuItem第归实现这个功能。procedure Tfmedtqx2.AddAMenuItem(AMenuItem: TMenuItem;aNode:TTreeNode);
    var
      i,j,k:Integer;
      s:String;
      curNode:TTreeNode;
    begin
      curNode := nil;
      s:=AMenuItem.Caption; //取得MenuItem的caption  k:=Pos('&',s);
      if k > 0 then
        Delete(s,k,1); //去掉其中的&
      if s <> '-' then //如果是分割符-就不处理
        curNode := TreeView1.Items.AddChild(aNode,s);
      J:=AMenuItem.Count;
      if J > 0 then //如果下曾菜单还有,就第归调用AddAMenuItem函数。
      for i := 0 to j - 1 do
      begin
        AddAMenuItem(AMenuItem.Items[i],curNode);
      end;
    end;下面是调用这个函数:var
      a:Integer;
      aNode:TTreeNode;
    begin
      aNode := TreeView1.Items.GetFirstNode; //Treeview
      for a := 0 to MainMenu1.Items.Count - 1 do
      begin
        AddAMenuItem(MainMenu1.Items[a],aNode);
      end;
      

  2.   

    FindComponent在Classes单元里,它的作用是找窗体上的控件
    比如
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        Tbutton(self.FindComponent('Button1')).Caption:='hello'
    end;