次のメソッドを使用して、実行時にアクションを持つ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;
これは、リスト内の項目がすでに存在する場合に正常に動作しますが、
例えば存在しない場合には全く動作しません。私は設計時に項目を追加した場合、私はランタイム
で複数の項目を追加することができます。しかし、私は設計時には何も追加しない場合は、項目のリストを表示するには、noドロップダウンをtheresの、アイテムを追加した後にドロップダウンは表示されません。
これはアクションで行う必要はありませんが、メニューシステムの残りの部分は、アクションを使用すると、私は私がダウンして、アクションドロップに標準のMenuItemを追加することができるとは思いません。
のDelphi 2005
ほんの少しの発言: 'ActionClient.Caption'の設定は、アクションの値と同じ値に設定すると余計です。 – NGLN