|
님의 코드를 수정해보았습니다. 확인은 안해봤는데.. 이렇게 한 번 해보시면 어떨까요..^^;;
TPopupMenu *MyPopup = new TPopupMenu(this); //팝업메뉴 생성..
this->PopupMenu = MyPopup;
MyPopup->AutoHotkeys = maManual;
//------------------------------------------------------------------
//TMenuItem *Item = new TMenuItem(this); //메뉴아이템생성..
//Item->AutoHotkeys = maParent;
TMenuItem *Item = NULL; //메뉴아이템생성은 밑에 있는 For Loop에서 생성을 하니까 여기서는 그냥 선언만 하구요..
//------------------------------------------------------------------
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);
//------------------------------------------------------------
// 동적으로 생성한 메뉴아이템과 팝업메뉴를 해제해줍니다.
for(int i = 0; i < MyPopup->Items->Count; i++ )
{
if( MyPopup->Items->Items[i] )
delete MyPopup->Items->Items[i];
}
MyPopup->Items->Clear();
delete MyPopup;
MyPopup = NULL;
//-------------------------------------------------------------
|