자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

본 게시판 사용시 당부 사항
* 이 게시판은 자유롭게 질문을 올리고 자발적으로 답변을 공유하는 게시판입니다.
* 어느 누구도 답변을 달아야만 하는 책임은 없습니다.
* 따라서 질문을 올리실 때에는 최대한 자세하고 정중하게 질문을 올려 주세요.
* 최대한 질문을 자세히 올려야 답변도 자세히 올라 옵니다.
* 본 질문에 답변을 주시는 여러 개발자님들께 미리 감사드립니다.
-----------------------------------------------------------------------------------------------

TCategoryButtons 의 동적생성 후 action의 문제

 

DB에서 TCategoryButtons.Categories 와

 

하위 Items를 끌고 와서 동적으로 생성을 하였는데

 

문제는 ActionList 에서 동적 생성이 문제가 된다는 점....

 

다른 방법으로 Click시 action을 하게 하는 방법이 있는지 궁금합니다.

 

동적생성을 하면 OnClick Event를 생성 시키지 못하는 단점이 있더군요.

 

아래는 TCategoryButtons 의 동적생성 코드 입니다.

 

catMenuItems = TCategoryButtons 입니다.

 

 

    // Menu Group

    DM.SysMenuGroupInfo.Open('T_SysMenuGroup');
    while not DM.SysMenuGroupInfo.eof do
    begin
      catMenuItems.Categories.Add();
      catMenuItems.Categories[DM.SysMenuGroupInfo.FieldByName('MenuTag').AsInteger - 1].Caption
        := DM.SysMenuGroupInfo.FieldByName('MenuGroupName').AsString;
      catMenuItems.Categories[DM.SysMenuGroupInfo.FieldByName('MenuTag').AsInteger - 1].Collapsed := true;
      DM.SysMenuGroupInfo.next;
    end;

 

    //Menu Item
      while not DM.Qry_Menupri.eof do
      begin
        catMenuItems.Categories[DM.Qry_Menupri.FieldByName('MenuGroupTag').AsInteger - 1].Items.Add();
        catMenuItems.Categories[FieldByName('MenuGroupTag').AsInteger - 1].Items[FieldByName('num').AsInteger - 1].caption
          := FieldByName('MenuName').AsString;
        catMenuItems.Categories[FieldByName('MenuGroupTag').AsInteger - 1].Items[FieldByName('num').AsInteger - 1].hint
          := FieldByName('MenuID').AsString;
        DM.Qry_Menupri.Next;
      end;