RecentFiles(1).Open
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
             毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
  I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
I.Desire := '加不加分随你';
—————————————————————————————————
       

解决方案 »

  1.   

    1.在程序中维护一个RecentFiles的字符串数组(如支持四个则数组为四个元素),在每次关闭文件时填写到数组中.
    2.在程序退出时把数组中的值写到注册表中,如:
    [HKEY_CURRENT_USER\Software\Your Product Name\RecentFiles]
    "1" = "File1.txt"
    "2" = "File2.txt"
    "3" = "File3.txt"
    "4" = "File4.txt"
    3.在程序开始时读出注册表中的信息,在File菜单中动态创建四个(假如注册表中有四项)菜单项,OnClick事件这样写(该函数先写好,在创建菜单项时赋给菜单的OnClick):
      procedure TForm1.RecentFile1Click(Sender: TObject);
      begin
        OpenTheFile((Sender as TMenuItem).Caption);//在OpenTheFile中打开文件.
      end;
    4.在第一步时也用第三步的方法更新菜单.
      

  2.   

    能不能给个例子?我想用INI文件实现,怎么做啊!帮忙啊!
      

  3.   

    var
        I,T:  integer;
        MenuItems:  Array of TMenuItem;
    begin
        if FileExists(ResPath+'\'+'ZXMENU.INI') then
        begin
            MenuPaths.LoadFromFile(ResPath+'\'+'ZXMENU.INI');
            SetLength(MenuItems,MenuPaths.Count);
            For i:= 0 to MenuPaths.Count-1 do
            begin
                 MenuItems[i]:=TMenuItem.Create(Mainfm.StkMenu);
                 T:=Pos(',',MenuPaths[i]);
                 MenuItems[i].Caption:=Copy(MenuPaths[i],1,T-1);
                 MenuPaths[i]:=Copy(MenuPaths[i],T+1,Length(MenuPaths[i])-T);
                 MenuItems[i].OnClick:=Mainfm.MenuClick;
                 MenuItems[i].Tag:=i;
                 Mainfm.hyzx.Add(MenuItems[i]);
            end;
        end;
    end;
    从ini文件加菜单的方法,这是个例子。
      

  4.   

    respath是我的程序中的东西。
    FileExists('这里面是你的路径和文件名就可以了') 
    MenuPaths需要定义一下,是TStringList;
    在写一编。var
        I,T:  integer;
        MenuItems:  Array of TMenuItem;
        MenuPaths:  TStringList;
    begin
        MenuPaths:=TStringList.create;
        if FileExists('E:\ZXMENU.INI') then
        begin
            MenuPaths.LoadFromFile('E:\ZXMENU.INI');
            SetLength(MenuItems,MenuPaths.Count);
            For i:= 0 to MenuPaths.Count-1 do
            begin
                 MenuItems[i]:=TMenuItem.Create(Mainfm.StkMenu);
                 T:=Pos(',',MenuPaths[i]);
                 MenuItems[i].Caption:=Copy(MenuPaths[i],1,T-1);
                 MenuPaths[i]:=Copy(MenuPaths[i],T+1,Length(MenuPaths[i])-T);
                 MenuItems[i].OnClick:=Mainfm.MenuClick;
                 MenuItems[i].Tag:=i;
                 Mainfm.hyzx.Add(MenuItems[i]);
            end;
        end;
        MenuPaths.free;
    end;