Кривые руки + попытка динамического создания главного меню
От: Аноним  
Дата: 14.04.05 07:44
Оценка:
Здрасьте!

О сабже по порядку:
1. Кривые руки, т.к. в классах и ООП вообще я пока еще очень слабо разбираюсь плюс недостаток сведений по вопросу динамического создания меню.
2. Посмотревши и попробовавши примеры и приемы из прошлых топиков на эту тему на этом сайте, результат — не помогают.
3. Ситуация:
Есть приложение, которое подключает все существующие плагины и создает подпункты пункта "Инструменты"(mModules) главного меню. Главное меню и пункт верхнего уровня "Инструменты" нарисованы в дизайнере. Создает пункты следующий код:
void DrawMainMenu(PLUGIN_INFO * lpPlugInInfo, char * lpFullPath)
{
  TMenuItem* mi =  new TMenuItem(wndMain->mModules);

   if(mi)
    {
     mi->Caption = lpPlugInInfo->lpName;
     mi->Enabled=true;
     mi->Checked=false;
     mi->Default=false;
     mi->Break=mbNone;
     mi->Visible=true;
     mi->RadioItem=false;
     wndMain->mModules->Insert(1, mi);
     mi->Tag=1;
     //mi->OnClick = OnMenuItemClick;
    }
return;
}

Обработчик:
void __fastcall TwndMain::OnMenuItemClick(TObject* Sender)
{ 
TMenuItem* mi = dynamic_cast<TMenuItem*>(Sender);
if(mi)
 {
     g_hCurrPlugIn=LoadLibrary(g_lpFullPath);
     if (!g_hCurrPlugIn)
        return;
     DLLFormShowType DLLFormShow;
     DLLFormShow=(DLLFormShowType)GetProcAddress(g_hCurrPlugIn,"DLLFormShow");
     DLLFormShow(Application->Handle);
     FreeLibrary(g_hCurrPlugIn);
     g_hCurrPlugIn=NULL;
 }
return;
}


Пуктик добавляется, все ОК, но...
ПРОБЛЕМА: как только я снимаю комментарии со строчки mi->OnClick = OnMenuItemClick, так получаю:
[C++ Error] main.cpp(233): E2451 Undefined symbol 'OnMenuItemClick', хотя в классе TwndMain этот метод описан.

Подскажите, в чем проблема??? Спасибо заранее. Артем
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.