unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus;type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    sysetm1: TMenuItem;
    language1: TMenuItem;
    english1: TMenuItem;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
  sub:Tmenuitem;
  i:integer;
  str:string;
begin
  try
  begin
    str:='';
    sub:=Tmenuitem.Create(self);
    //sub.clear;
    sub.Caption:='chinese';
    for i:=0 to language1.Count-1 do
    begin
      if Language1.Items[i].Caption='chinese' then
        begin
          str:='chinese';
          break;
        end;
    end;
    if not(str='chinese') then
      language1.Add(sub);
  end;
  finally
    showmessage(inttostr(language1.Count));
  end;
end;end.
本来language底下就只有一个english子菜单,现在想动态加入多个菜单,但是不想有重复的,这个程序只点button不会重复,但是点下language后,就会重复加chinese直到有6个chinese后停止,为什么呢?