Вот примерно так, но код не проверял, писал на коленке:
Код:
procedure TForm1.Open1Click(Sender: TObject);
Var i: Integer;
begin
if not OpenDialog1.Execute then Exit;
Save1.Enabled := True;
SaveAs1.Enabled := True;
Close1.Enabled := True;
Reopen1.Enabled := True;
Reopen1.Items[0].Caption := '0:' + OpenDialog1.FileName;
for i := 3 downto 1
do begin
if Reopen1.Items[i-1].Caption = '' then Continue;
Reopen1.Items[i].Caption := Reopen1.Items[i-1].Caption;
Delete(Reopen1.Items[i].Caption,1,1);
Reopen1.Items[i].Caption := IntToStr(i) + Reopen1.Items[i].Caption;
end;
end;