unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls;type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    MainMenu1: TMainMenu;
    OldFiles1: TMenuItem;
    OpenDialog1: TOpenDialog;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure MenuItemClick(Sender: TObject);
  private
    { Private declarations }
    FOldFiles: TStringList;
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
var
  I: Integer;
  vMenuItem: TMenuItem;
begin
  MainMenu1.AutoHotkeys := maManual;
  FOldFiles := TStringList.Create;
  if FileExists('C:\OldFiles.txt') then begin
    FOldFiles.LoadFromFile('C:\OldFiles.txt');
    for I := 0 to FOldFiles.Count - 1 do begin
      vMenuItem := TMenuItem.Create(Self);
      vMenuItem.Caption := FOldFiles[I];
      //vMenuItem.OnClick := MenuItemClick;
      OldFiles1.Add(vMenuItem);
    end;
  end;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
  FOldFiles.SaveToFile('C:\OldFiles.txt');
  FOldFiles.Free;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute and (FOldFiles.IndexOf(OpenDialog1.FileName) < 0) then
    FOldFiles.Insert(0, OpenDialog1.FileName);
end;procedure TForm1.MenuItemClick(Sender: TObject);
begin
  ShowMessage(TMenuItem(Sender).Caption);
end;end.