第三个问题完整代码:写一个函数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;
FindComponent在Classes单元里,它的作用是找窗体上的控件 比如 procedure TForm1.Button1Click(Sender: TObject); begin Tbutton(self.FindComponent('Button1')).Caption:='hello' end;
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;
比如
procedure TForm1.Button1Click(Sender: TObject);
begin
Tbutton(self.FindComponent('Button1')).Caption:='hello'
end;