PopupMenu에 대해서 질문을 드립니다.
PopupMenu의 Item을 정적으로 생성(Design Time)하지 않고
동적으로 생성하고자 합니다.
다음과 같은 Source를 사용합니다.
Type
PopupMenu: TPopupMenu;
......
procedure TForm1.PopupMenuPopup(Sender: TObject);
var i : Integer;
NewItem: TMenuItem;
begin
for i := PopupMenu.Items.Count - 1 downto 0 do
PopupMenu.Items.Delete(i); // 이미 존재하는 Item 삭제
for i := 1 to 5 do
begin
NewItem := TMenuItem.Create(Self);
NewItem.Caption := 'Menu' + IntToStr(i);
PopupMenu.Items.Add(NewItem);
end;
NewItem.Free;
end;
그런 다음에 위에서 생성한 PopupMenu를 사용하려고 합니다.
그런데 정적으로 만든 PopupMenu의 Item은 생성 당시 Event를 걸 수 있지만
위와 같이 동적으로 만든 PopupMenu의 Item들에게는 어떻게 Event를 걸어야
되는지 갑갑하기만 합니다.
어떻게 PopupMenu의 Item이 "Menu1"인지를 아느냐가 중요한 것 같습니다.
참고로 정적으로 만든 PopupMenu의 Item중 Click Event는 위의 Item의 예를
들어서 보면 Procedure TForm1.Menu1Click(Sender: TObject);로 생성됩니다.
이러한 argument로는 어떻게 해야할 줄 모르겠어요.
델파이 고수님들의 황금같은 조언 부탁드립니다.
|