Q&A

  • 팝업메뉴 아이템 동적생성시 삭제하는 방법~~~
아이템을 동적으로 생성까지는 했씁니다.~~~



밑이 동적생성 코딩~~



버튼1를 누르면 팝업메뉴에 아이템을 생성합니다.(클릭하기 전까지는 아이템이 없음)



procedure TForm1.Button1Click(Sender: TObject);

begin

PopUpMenu1.Items.Add(NewItem('첫번째 메뉴항목', ShortCut(Word('F'), [ssCtrl]),

True, False, PMenuClick, 0, 'MenuItem1'));

PopUpMenu1.Items.Add(NewItem('버튼생성', ShortCut(Word('S'), [ssCtrl]),

False, True, btnClick, 0, 'MenuItem2'));



// NewLine 함수는 구분자 Menu Item을 만들어 냅니다

PopUpMenu1.Items.Add(NewLine);

MenuItem4 := NewItem('세번째 메뉴항목', 0, False, True, PMenuClick, 0,

'MenuItem4');

PopUpMenu1.Items.Add(MenuItem4);

end;



procedure TForm1.PMenuClick(Sender: TObject);

begin

ShowMessage(TMenuItem(Sender).Name);

end;



다음은 버튼2을 선택하면 'MenuItem4'를 삭제하는 것입니다.



밑이 삭제 코딩



procedure TForm1.Button2Click(Sender: TObject);

begin

popupmenu.Items.Delete(PopupMenu.Items.IndexOf(MenuItem4));

end;



그런데 여기서 문제가 나타났씁니다~~



버튼을 삭제하는 것까지는 좋은데 버튼2를 연속해서 2번이상 눌렀을때는 이미 지워졌다면서 에러가 발생



합니다. 이것을 해결할려고 하는데 잘 되지 않습니다.



아시는 분은 꼭 좀 갈켜주세여~~



참 글구여 버튼1을 여러번 눌르면 누른만큼 똑같은 아이템이 생깁니다. 버튼을 1번 누르면 아이템이 3개씩



생기는데 2번 누르면 6개 3번 누르면 9개 생기며 생기는 것은



MenuItem1

MenuItem2

-----------

MenuItem4



위가 한번 누를시





밑이 두번 눌렀을 시의 상황입니다.



MenuItem1

MenuItem2

-----------

MenuItem4

MenuItem1

MenuItem2

-----------

MenuItem4







여기서 똑같이 MenuItem4를 지우고 싶습니다. 어케하면 될까여??????



0  COMMENTS