![]() |
Hilfe zu den RecentItems der RibbonControls
Hallo,
Hat jemand Erfahrungen mit den RecentItems der TRibbonApplicationMenuBar? Wie man Einträge hinzufügt, habe ich ja schon herausbekommen, z.B. mit
Delphi-Quellcode:
Ribbon1.AddRecentItem(FileName);
, nun möchte ich aber gerne die Liste bei Programmstart laden und bei Programmende speichern. Google war bis jetzt nicht hilfreich. Danke im Voraus Thomas |
AW: Hilfe zu den RecentItems der RibbonControls
Delphi-Quellcode:
und
Ribbon1.RecentItems.Items[i]
Delphi-Quellcode:
?
Ribbon1.RecentItems.Count
Schon erstaunlich, was ein Strg+Linksklick alles hervorbringt. (notfalls geht auch ein Blick in Hilfe) |
AW: Hilfe zu den RecentItems der RibbonControls
Danke Dir. Bin inzwischen schon etwas weiter gekommen. Sobald ich mit der Lösung zufrieden bin, poste ich sie hier.
Gruß Thomas |
AW: Hilfe zu den RecentItems der RibbonControls
Als RecentItem wird ein TOptionItem Objekt verwendet.
Du kannst als Caption entweder den Dateiname angeben bzw. einen alternativen Namen und den Dateinamen im Hint. Laden zum Beispiel:
Delphi-Quellcode:
var
i: Integer; begin i := Ribbon.AddRecentItem( iFileName ); if i >= 0 then with Ribbon.ApplicationMenu.Menu.RecentItems[i] do begin Hint := iFileName; // verwende ich gerne, weil dann der Dateiname angepasst dargestellt wird Caption := MinimizeName( iFileName, Self.Canvas, 250 ); // oder ExtractFileName(xxx) end; Speichern über eine StringList:
Delphi-Quellcode:
var sl : TStringList; begin sl := TStringList.Create; try for i := 0 to Ribbon.ApplicationMenu.Menu.RecentItems.Count - 1 do sl.Add( Ribbon.ApplicationMenu.Menu.RecentItems.Items[i].Hint ); sl.SaveTofile(...); finally sl.Free; end; |
AW: Hilfe zu den RecentItems der RibbonControls
Danke Daniela,
soweit war ich inzwischen schon :-D. Im Moment bin ich am knobeln, wie ich diesen dynamisch erzeugten Items das "OnRecentItemClick-Ereignis" verpasse :gruebel:. Ist mein erstes Projekt mit den Ribbon-Controls, und als Hobby-Programmierer hat man's eh schwer :cry:. Gruß Thomas |
AW: Hilfe zu den RecentItems der RibbonControls
Über den Eventhändler der Ribbon Komponente sollte das eigentlich automatisch gehen...
Delphi-Quellcode:
Ribbon.AddRecentItem( FileName );
... RibbonRecentItemClick(Sender: TObject; FileName: string; Index: Integer); |
AW: Hilfe zu den RecentItems der RibbonControls
So, ich bin jetzt mit meiner Lösung vorläufig zufrieden, aber vielleicht hagelt es ja Kritik oder Verbesserungsvorschläge :-D.
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz