次のメソッドを使用して、実行時に Action を持つ 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;
これは、リストに項目が既に存在する場合は正常に機能しますが、存在しない場合はまったく機能しません
たとえば、設計時に項目を追加すると、実行時にさらに項目を追加できます
しかし、設計時に何も追加しないと、アイテムのリストを表示するドロップダウンがなく、アイテムを追加した後にドロップダウンが表示されません。
これはアクションで行う必要はありませんが、メニュー システムの残りの部分はアクションを使用するため、アクション ドロップダウンに標準の MenuItem を追加することはできないと思います。
デルファイ 2005