LINUX.ORG.RU

Вопрос знатокам C++ и/или tvision


0

0

Если написать такой метод, то при запуске приложения появится
подменю (точнее - только заголовок подменю) "File". Правда при
нажатии на клавишу упадет в кору, посколько самих menuItems
здесь нет, но не об этом речь.

TMenuBar *TMyApp::initMenuBar( TRect r )
{
r.b.y = r.a.y + 1;
TMenuBar *aMenuBar;
aMenuBar = new TMenuBar(r, *new TSubMenu( "~F~ile", kbAltF ));
return aMenuBar;
}

Есть необходимость немного динамически делать меню. Пишу так:

TMenuBar *TMyApp::initMenuBar( TRect r )
{
r.b.y = r.a.y + 1;
TMenuBar *aMenuBar;
TSubMenu aMenu( "~F~ile", kbAltF );
aMenuBar = new TMenuBar(r, aMenu);
return aMenuBar;
}

И при старте получаю вместо подменю "File" грязь. Где тут я напортачил?

★★★★

Pri vyhode iz funkcii aMenu budet unichtozhen. Posemu na chto budet ssylatsya obekt aMenuBar neizvestno. Luchshe tak:

TSubMenu *aMenu = new TSubMenu("~F~ile",kbAltF); aMenuBar = new TMenuBar(r,*aMenu);

togda pri vyhode destructor ne budet vyzvan. Odnako kak osvobodit pamyat potom neznayu.

master
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.