본문 바로가기
Delphi Tip/컴포넌트

동적으로 메뉴(TMenuItem) 만들고 클릭 이벤트 만들기

by MonoSoft 2023. 10. 31.
728x90
반응형

동적으로 메뉴(TMenuItem) 만들고 클릭 이벤트 만들기

 

728x90

 

 

 

아래와 같이 popMenuSkin MenuItem에

서브 MenuItem을 동적으로 추가할 수 있다.

 

// Create Dynamic MenuItem

var

  skinCount: Integer;

  MI: array of TMenuItem;

begin

  skinCount := 3

 

  for i := popMenuSkin.Count - 1 downto 0 do

    popMenuSkin.Remove(popMenuSkin.Items[i]);

 

  SetLength(MI, skinCount);

 

  for i := 0 to skinCount do

  begin

    MI[i] := TMenuItem.Create(Self);

    MI[i].Caption := IntToStr(i);

    MI[i].OnClick := SkinMenuClick;

    popMenuSkin.Add(MI[i]);

  end;

 

그리고 해당 MenuItem을 클릭할때 일어날 이벤트는 다음과 같이

OnClick 이벤트를 이용한다.

 

예에서는 간단히 클릭된 MenuItem의 Caption을 메세지로 띄우는 것이다.

 

// SkinMenuClick Event

procedure SkinMenuClick(Sender: TObject);

 

procedure TfrmMain.SkinMenuClick(Sender: TObject);

begin

  if Sender is TMenuItem then

  begin

    ShowMessage((Sender as TMenuItem).Caption);

  end;

end;

 

728x90
반응형

댓글