C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
PopUp
ykk
Отправлено: 18.04.2005, 22:51


Ученик-кочегар

Группа: Участник
Сообщений: 17



Подскажите пожалуйста как в PopUp меню динамически добавлять итемсы??

Заранее большое спасибо!!
Rius
Отправлено: 19.04.2005, 05:07


Мастер участка

Группа: Участник
Сообщений: 321



В хэлпе все есть:
QUOTE
This example demonstrates how to add and delete menu items to a popup menu at runtime and assign an event handler to the OnClick event.

void __fastcall TForm1::AddButtonClick(TObject *Sender)
{
   const int num_items = 4;
   for (int index = 0; index < num_items; ++index)
   {
       TMenuItem *NewItem = new TMenuItem(PopupMenu1); // create the new item
       PopupMenu1->Items->Add(NewItem);// add it to the Popupmenu
       NewItem->Caption = "Menu Item " + IntToStr(index);
       NewItem->Tag = index;
       NewItem->OnClick = PopupMenuItemsClick;// assign it an event handler

   }
}

void __fastcall TForm1::PopupMenuItemsClick(TObject *Sender)
{
   TMenuItem *ClickedItem = dynamic_cast(Sender);
   if (ClickedItem)
   {
       switch (ClickedItem->Tag)
       {
           case 0:
           {
               ShowMessage("first item clicked");
               break;
           }
           case 1:
           {
               ShowMessage("second item clicked");

               break;
           }
           // etc...
       }
   }
}

To edit or destroy an item, grab its pointer via the TMenuItem::Items property.

void __fastcall TForm1::EditButtonClick(TObject *Sender)
{
   const int index = 1;
   TMenuItem *ItemToEdit = PopupMenu->Items->Items[index];
   ItemToEdit->Caption = "Changed Caption";
}

void __fastcall TForm1::DestroyButtonClick(TObject *Sender)
{
   const int index = 2;
   TMenuItem *ItemToDelete = PopupMenu->Items->Items[index];
   delete ItemToDelete;
}

Вернуться в Вопросы программирования в C++Builder