我可以轻松地将一个MRF列表添加到A TRibbon最近的项目列表中,但是如何添加 设置为下拉按钮的功能区项目的相同列表?下拉列表 item是ActionBars [2] .Items [1]。
var
ARecentFilesList: TStringList;
ACI: TActionClientItem;
if FileExists( ARecentFilesFilename ) then
begin
ARecentFilesList.LoadFromFile( ARecentFilesFilename );
for i := 0 to ARecentFilesList.Count - 1 do
begin
// add filename to Ribbon Recent Items
Ribbon1.AddRecentItem( ARecentFilesList.Strings[ i ] );
//add the file name to dropdown button collection
//add MostRecentFiles to ActionBars[2].Items[1]
//ACI := TActionClientItem.Create( );
//ACI.Caption := ARecentFilesList.Strings[ i ];
end;
end;
谢谢,
比尔
答案 0 :(得分:1)
与大多数操作栏控件一样,它并不像您所希望的那样直观。功能区上的基本结构如下:
因此,您的策略是获取代表您要添加项目的按钮的TActionClient。在我的简单测试应用程序中,我抓住了第一组的第一个控件 - 您的逻辑可能需要更高级。
var
ActionClient: TActionClient;
ChildItem: TActionClientItem;
begin
// Does the same as Ribbon1.AddRecentItem('C:\MyFile.txt');
ActionClient := RibbonGroup1.ActionControls[0].ActionClient;
ChildItem := ActionClient.Items.Add;
ChildItem.Action := ActionThanOpensAFile;
ChildItem.Caption := 'C:\MyFile.txt';
end;
请注意,我在指定了操作后分配了菜单项的标题 - 这是因为该操作会替换与其关联的客户端的标题(以及其他属性)。