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
[26015] [답변] 추가할때 이름이 있는지 확인하고....
정성훈.해미 [sage5nor] 770 읽음    2003-06-19 15:12
MyPopup->Items->Add(Item);

위의 부분을 다음과 같이하면..

// 팝업 아이템중 같은 이름이 있는지 확인한다.
// 있으면 캡션만 바꾸고
// 없으면 아이템을 추가한다
for(int i=0; i<MyPopup->Items->Count; i++)
{
   // 추가할려는 아이템이름이 팝업아이템에 있으면...
   if(!StrCopm(Item->Name.c_str(), MyPopup->Items->Items[i]->Name.c_str()))
   {
       // 해당 아이템의 캡션만 바꾼다.
       MyPopup->Items->Items[i]->Caption = Item->Caption;
       // for문 종료
       break;
   }
   // 마지막 아이템까지 확인했는데도
   // 추가할려는 아이템이름이 팝업아이템에 없으면...
   else if(i == MyPopup->Items->Count-1)
   {
       //  아이템을 추가한다.
       MyPopup->Items->Add(Item);
   }
}





우비소녀.. 님이 쓰신 글 :
: 버튼을 클릭하면 DB내용을 가져와서 팝업메뉴를 동적으로 생성해서 팝업메뉴에 보여주는건데여...
: 버튼을 한번 클릭하면 가져와서 보여주는데 두번째 클릭하면 컴포넌트가 존재한다는 오류가 나옹는데여...
: 한번 생성된 메뉴아이템이 삭제가 되질 않아서 그런것 같은데...어떻게 삭제를 해줘야 하는지...
: 팝업에 다 보여준 후에 delete를 하면 OnClick이벤트에서 아이템을 찾을수 없어서 삭제를 할수가 없고....어떻게 해야할지...
: 방법좀 알려주세요....
:
: 소스는...
:    TPopupMenu *MyPopup = new TPopupMenu(this); //팝업메뉴 생성..
:    this->PopupMenu = MyPopup;
:    MyPopup->AutoHotkeys = maManual;
:
:    TMenuItem *Item = new TMenuItem(this); //메뉴아이템생성..
:    Item->AutoHotkeys = maParent;
:
:    AnsiString SqlStr; //쿼리부분..
:    SqlStr = "Select * From AAA";
:
:    if(MData->qryTemp->Active) MData->qryTemp->Active = false;
:    MData->qryTemp->SQL->Clear();
:    MData->qryTemp->SQL->Add(SqlStr);
:    MData->qryTemp->Active = true;
:
:    if(!MData->qryTemp->Eof){
:       while(!MData->qryTemp->Eof){
:          Item = new TMenuItem(this);
:          Item->Caption = MData->qryTemp->FieldByName("bbb")->AsString;
:          Item->Name = MData->qryTemp->FieldByName("ccc")->AsString;
:
:          //<---여기서 에러가 납니다...한번은 에러가 안나는데...두번째 부터는 에러가 납니다..
:                이미 생성이 되어 있어서 그런것 같은데...방법이 없을까여?...
:
:          MyPopup->Items->Add(Item);
:
:          MData->qryTemp->Next();
:       }
:    }
:
:    MData->qryTemp->Active = false;
:
:
:    int x = Left + BEventSort->Left + 15;
:    int y = Top + GroupBox2->Height + BEventSort->Top + BEventSort->Height + 45;
:
:    MyPopup->Popup(x,y);

+ -

관련 글 리스트
26009 팝업메뉴를 동적으로 생성했습니다... 우비소녀.. 903 2003/06/19
32628     Re:팝업메뉴를 동적으로 생성했습니다... 머슴.한석복 853 2003/06/19
26015     [답변] 추가할때 이름이 있는지 확인하고.... 정성훈.해미 770 2003/06/19
26013     전 Name속성이 꼭 필요합니다[냉무]... 우비소녀.. 644 2003/06/19
26346         Re:전 Name속성이 꼭 필요합니다[냉무]... skjoon 694 2003/07/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.