동적으로 메뉴(TMenuItem) 만들고 클릭 이벤트 만들기
아래와 같이 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;
'Delphi Tip > 컴포넌트' 카테고리의 다른 글
TMemo(메모장) 스트링(string) 입력 속도개선 (0) | 2024.06.28 |
---|---|
컴포넌튼 만들기(초간단) (0) | 2023.11.29 |
델파이 콤보박스(TComboBox)의 팝업리스트 가로폭 늘리기 (0) | 2023.10.26 |
델파이 타이머(TTimer) Interval 시간오차 해결방법 (0) | 2023.10.11 |
델파이 컨트롤 반투명 드래그 이동 (0) | 2023.09.12 |
댓글