C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[6667] Re:질문을 다시 올립니다.
박지훈.임프 [cbuilder] 2028 읽음    2001-04-07 15:40
임펠리테리입니다.

기본적으로, 한 메뉴아이템의 서브아이템들은 클릭했을 때가 아니라 단순히 커서가 그 아이템 위로 갔거나 혹은 방향키로 선택했을 때 나타납니다. 게다가 클릭했을 때는 서브아이템을 만들어줄 여유도 없이 그냥 메뉴 자체가 사라지고 클릭 이벤트가 발생합니다. 간단히 말하면, 메뉴아이템을 클릭했을 때 서브아이템이 나오게 할 수는 없습니다.

팝업메뉴라고 하셨으니 대안은 있습니다. 팝업메뉴의 경우, 매번 메뉴가 나타날 때마다 OnPopup 이벤트가 발생하므로 여기서 필요한 서브아이템들을 동적으로 생성해서 넣어주면 됩니다.
그런데 이 경우, 동적으로 생성된 아이템을 삭제하지 않으면 매번 팝업메뉴가 나타날 때마다 같은 아이템들이 계속 추가되겠지요? 그래서, 간단하게 하려면, 팝업메뉴의 OnPopup 이벤트에서 매번 모든 서브아이템들을 삭제해주고 새로 생성해주면 됩니다.

이 경우, 문제는 깨끗하게 해결이 되지만, 읽어와야 할 서브아이템의 항목이 아주 많을 경우 매번 서브아이템을 생성할 때마다 느려질 수 있으므로 읽어오는 데이터의 상황에 따라 다 삭제하지 않는다든지, 파일이 하나일 경우 파일이 변경된 시간을 체크해서 변경되지 않았다면 다시 읽어오지 않게 한다든지 등의 방법을 생각해볼 수 있습니다.

그럼 참고하시길...



박애영 님이 쓰신 글 :
: 제가 너무 서두가 없었죠...죄송합니다.
: 아직 개념이 제대로 안 서있어서 이런일이 발생하는 군요...
:
: 저번 질문에 리플을 달았었는데...답변이 없는 것을 보니...
: 그래서 다시 올립니다...꼭 좀 가르켜 주세요...
:
: 제가 하고 싶은 일은요....
: 만약에 어떤 버튼을 눌렸을때 팝업메뉴의 아이템으로 미리 '사람'과 '동물'이 나오도록
: 했을때...사람을 눌렸을때 서브아이템으로 그 사람들의 이름을 나열하기를 원하고...
: 동물로 마찬가지로 나열하고....이거는 프로그램을 하면서...프로그램상에서 하고 싶거든요..
: 그런후에 그 사람이름이나 동물이름을 클릭했을때 나오는 이벤트를 만들기를 원한다면요....
: 어떻게 할수 있을까요...?
: 그 이름에 대한 이벤트들은 이름에 따라 성격..나이..성별등이 달라질순 있지만 ..기본적으로
: 같은 일을 하잖아요...?
: 그래서.. 첫번째서브아이템을 선택했을땐...이때의 이름에 따라...일을하도록...그런식으로 하고 싶거든요..
: 물론 여기서 사람과 동물에 대한 파일이 미리 주어지고 이파일을 통해 파싱하는 거구요...
:
: 물론 위의 답변이 사실은 제가 원한것이긴 한데....그런식으로 하면 되지않을까하고...생각은 했었는데...
: 막상하려고 하니깐 잘 안되더라구요...
: 그러면 팝업메뉴의 아이템을 미리 만들어놓을꺼니깐 Caption을 통해서 확인하고...
: 서브아이템은 만들어줄때...추가하면서...Tag를 같이 정의해주면서...나중에 그 Tag를 가리켜주면
: 되지 않을까하고 생각했었는데....
: 이때 정확하게 어떻게 적어주어야하나요...?
: PopupMenu1은 미리만들어진것이고...여기서 '사람'과 '동물'도 MenuItem으로 연결시켜야하지 않을까요?
: 여기서 TMenuItem 으로 다시 새로운 SubItem을 만들어준다면...
: PopupMenu1->...->Caption=="사람"이런식이나...PopupMenu1->...->Tag==1 이런식으로 하는 거 맞나요?
: 정확하게 적는방법도 가르켜 주세요...
: 첫번째 서브아이템이 선택되었는지...두번째 서브아이템이선택되었는지는 이런식으로밖에 확인할수 없나요?

+ -

관련 글 리스트
6631 질문을 다시 올립니다. 박애영 2017 2001/04/06
6667     Re:질문을 다시 올립니다. 박지훈.임프 2028 2001/04/07
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.