런타임에서 델파이 2009 리본 버튼의 확인 된 속성에 액세스하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1084659

  •  23-08-2019
  •  | 
  •  

문제

리본 버튼을 클릭 할 때 리본의 모든 taction 객체의 "확인 된"속성을 False로 재설정 한 다음 누른 버튼에서만 true를 설정하려고합니다. 그러나 나는 아직 ActionManager의 행동의 "확인 된"속성에 액세스 할 수있는 방법을 아직 찾지 못했습니다. 나는 ActionManager의 ActionList를 통과해야한다고 생각하지만 아직 올바른 방법을 찾지 못했습니다. 누군가 나에게 이것에 대한 힌트를 줄 수 있다면 매우 기쁩니다.

감사!

도움이 되었습니까?

해결책

TActionManager 내려갑니다 TCustomActionList, 당신이 후자와 함께 할 수있는 것은 무엇이든, 당신은 전자와 함께 할 수 있습니다. 사용해야 할 두 가지 속성이 있습니다. Actions, 이것은 모든 목록의 동작에 액세스 할 수있는 배열 속성입니다. ActionCount, 얼마나 많은지 알려줍니다. 그것들을 사용하여 다음과 같은 일반 루프를 작성하십시오.

var
  i: Integer;
  Contained: TContainedAction;
  Action: TCustomAction;
begin
  for i := 0 to Pred(ActionList.ActionCount) do begin
    Contained := ActionList[i]; // shorthand for ActionList.Actions[i]
    if not (Contained is TCustomAction) then
      continue; // Doesn't have Checked property

    Action := TCustomAction(Contained);
    Action.Checked := False;
  end;
end;

액션 목록은 많은 종류의 행동을 보유 할 수 있으며 모두가 Checked 속성. 그 속성은 소개됩니다 TCustomAction, 위의 코드는 또한 해당 클래스에서 내려 가지 않는 것들을 걸러냅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top