아이템을 동적으로 생성까지는 했씁니다.~~~
밑이 동적생성 코딩~~
버튼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를 지우고 싶습니다. 어케하면 될까여??????