Я использую следующий метод для создания ActionClient с действием во время выполнения.
procedure TMainForm.AddToProjectHistory(Path: string);
var
NewOption: TAction;
ActionClient: TActionClientItem;
begin
NewOption := TAction.Create(self);
NewOption.ActionList := ActionManager1;
NewOption.Caption := Path;
NewOption.OnExecute := ProjectHistoryExecute;
ActionClient := TActionClientItem(aToolBarFile.ActionClient.Items[0].Items.Add);
ActionClient.Action := NewOption;
ActionClient.Caption := Path;
end;
Это прекрасно работает, если в списке уже есть элемент, но не работает, если его нет.
например если я добавлю элемент во время разработки, я могу добавить больше элементов во время выполнения
Но если я ничего не добавляю во время разработки, нет раскрывающегося списка для отображения списка элементов, после добавления элементов раскрывающийся список не появляется.
Это не обязательно делать с помощью действий, но остальная часть системы меню использует действия, и я не думаю, что смогу добавить стандартные элементы меню в раскрывающийся список действий.
Делфи 2005
ActionClient.Caption
является излишним, если для него задано то же значение, что и для действия. - person NGLN   schedule 09.11.2011