나는 동적으로 actionitems를 추가하려고 나는이 할 때이 항목을 추가 할 수 있으며 작동 : 그러나나는 프로그래밍 방식으로 델파이에서 작업 관리자에 작업을 추가하려면 어떻게 2010
HostActionItem := ActionManager.ActionBars[0].Items[0].Items[2];
NewItem := HostAction.Items.Add;
NewItem.Action := MyActionToPerform;
NewItem.Caption := Description;
NewItem.ImageIndex := 1;
NewItem.Tag := 13;
을 작업이 실행되면, 메서드 화재 Sender 개체에서 다음과 같이 ActionComponent를 가져 오려고 시도합니다.
if (Sender is TAction) then
tag := (Sender As TAction).ActionComponent.Tag;
그러나 ActionComponent는 항상 nil입니다. ActionComponent가 초기화되지 않는 이유는 무엇입니까?
_ "ActionComponent가 초기화되지 않는 이유는 무엇입니까?"액션 관리자에 작업을 추가하는 대신에 _이 여기 실제 질문 인 것 같습니다. 그건 그렇고,'Tag' 액션을 사용해보십시오. 동일한 액션에 다른 태그가 필요한 경우, 아마도 "신"이벤트 핸들러 (http : //en.wikipedia.)를 만드는 대신에 다른 액션이 필요할 수도 있습니다. org/wiki/God_object). – Trinidad
질문을 혼동하게해서 죄송합니다. 근본적으로 당신은 정확합니다. 동적 인 동작을하는 방식을 쫓고 있기 때문에 상당히 유연한 이벤트 핸들러가 필요합니다. 기본 동작을 동적으로 만들 것을 제안 하시겠습니까? 아니면 이렇게하는 더 좋은 방법이 있습니까? –