在窗口菜单栏下了记录了多个窗口信息,当一个窗体关闭后,我想要删除与窗体有关的
菜单项,该菜单项内容与窗体的caption相同。
请帮忙指点下?

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    VAR
    I:INTEGER;
    begin
     FOR I:=1 TO MainMenu1.Items[5].Count-1 DO   //这个5代表你显示窗体的那列菜单,根据实际情况改
     IF MainMenu1.Items[I].Caption<>'窗体的标题'//动态传递就可以了
       showmessage('已关闭了');
    end;
      

  2.   

    你只要写一个公用的函数,然后在每窗体的Close事件中调用就可以了procedure Delete_Item(Capition_Name:String);
    var
       i:Integer;
    begin
        With Form1.MainMenu1 do
        Begin
           For i:=0 to Items[0].Count-1 do
           Begin
              IF Items[0].Items[i].Name=Capition_Name then
              Items[0].Delete(i);
           End;
        End;
    End;这个公用函数可以写在主窗体的Public部分或别的单元都可以访问的地方,参数值你把要关闭的窗口的Caption属性放进去就可以了.
      

  3.   

    如果是菜单项内容与窗体的caption相同。上面程序中的IF Items[0].Items[i].Name=Capition_Name 改为IF Items[0].Items[i].Caption=Capition_Name