So, ich bin jetzt mit meiner Lösung vorläufig zufrieden, aber vielleicht hagelt es ja Kritik oder Verbesserungsvorschläge
.
Vielen Dank für die Denkanstöße.
Delphi-Quellcode:
const
MaxRecentItems = 5; // maximale Anzahl der Recent Items in der Liste
procedure TFrmMain.FormCreate(Sender: TObject);
var
IniFile: TMemIniFile;
StringList: TStringList;
i: Integer;
begin
...
IniFile := TMemIniFile.Create('.\Settings.ini');
try
...
// RecentItems
StringList := TStringList.Create;
try
IniFile.ReadSectionValues('RecentItems', StringList);
for i := 0 to StringList.Count - 1 do
Ribbon1.AddRecentItem(IniFile.ReadString('RecentItems', IntToStr(i), ''))
finally
StringList.Free;
end;
finally
IniFile.UpdateFile;
IniFile.Free;
end;
end;
procedure TFrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
var
IniFile: TMemIniFile;
RecentItemsCount: Integer;
i: Integer;
begin
IniFile := TMemIniFile.Create('.\Settings.ini');
try
with IniFile do
begin
...
// RecentItems
if RibbonApplicationMenuBar1.RecentItems.Count > MaxRecentItems then
RecentItemsCount := MaxRecentItems
else
RecentItemsCount := RibbonApplicationMenuBar1.RecentItems.Count;
IniFile.EraseSection('RecentItems');
for i := 0 to RecentItemsCount - 1 do
IniFile.WriteString('RecentItems', IntToStr(i),
RibbonApplicationMenuBar1.RecentItems.Items[i].Caption);
end;
finally
IniFile.UpdateFile;
IniFile.Free;
end;
end;