Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.01;
Скачать: CL | DM;

Вниз

Динамическое меню   Найти похожие ветки 

 
lightix   (2003-08-19 11:52) [0]

Подскажите как можно динамически построить меню по данным находящимся в массиве: для каждого элемента
CODE - имя (номер) элемента
PCODE - имя (номер) родительского элемента (для 0-го уровня =0)
NPP - номер по порядку в подменю одного уровня.

Пытался сделать с помощью рекурсивной функции - получилось, но с пустыми элементами в каждом уровне :(((

Помогите!


 
pasha_golub ©   (2003-08-19 11:57) [1]

Покажи код, быть может ты сделал рекурсию на входе, а надо было на выходе


 
lightix   (2003-08-19 12:52) [2]

TMenuItem2 *CreateMenuSubLevel(int PCODE)
{
TMenuItem2 *MENU_ITEM = new TMenuItem2(NULL);
TMenuItem2 *NEW_ITEM = new TMenuItem2(NULL);

for (int i=1;i<99;i++)
if (d_menu[PCODE][i].ncode!=0)
{
NEW_ITEM = new TMenuItem2(NULL);

NEW_ITEM->Caption=d_menu[PCODE][i].nmenu;
NEW_ITEM->Name="m"+AnsiString(d_menu[PCODE][i].ncode);
NEW_ITEM->ProgramName=d_menu[PCODE][i].program;
NEW_ITEM->Acl=d_menu[PCODE][i].aclv;
NEW_ITEM->DBName=d_menu[PCODE][i].dbname;
NEW_ITEM->DBUID=d_menu[PCODE][i].dbuid;
NEW_ITEM->DBPasswd=d_menu[PCODE][i].dbpasswd;
NEW_ITEM->Param=d_menu[PCODE][i].param;
//NEW_ITEM->OnClick=MenuClick;

NEW_ITEM->Add(CreateMenuSubLevel(d_menu[PCODE][i].ncode));

MENU_ITEM->Add(NEW_ITEM);
}

return(MENU_ITEM);
}


 
lightix   (2003-08-19 12:52) [3]

TMenuItem2 *CreateMenuSubLevel(int PCODE)
{
TMenuItem2 *MENU_ITEM = new TMenuItem2(NULL);
TMenuItem2 *NEW_ITEM = new TMenuItem2(NULL);

for (int i=1;i<99;i++)
if (d_menu[PCODE][i].ncode!=0)
{
NEW_ITEM = new TMenuItem2(NULL);

NEW_ITEM->Caption=d_menu[PCODE][i].nmenu;
NEW_ITEM->Name="m"+AnsiString(d_menu[PCODE][i].ncode);
NEW_ITEM->ProgramName=d_menu[PCODE][i].program;
NEW_ITEM->Acl=d_menu[PCODE][i].aclv;
NEW_ITEM->DBName=d_menu[PCODE][i].dbname;
NEW_ITEM->DBUID=d_menu[PCODE][i].dbuid;
NEW_ITEM->DBPasswd=d_menu[PCODE][i].dbpasswd;
NEW_ITEM->Param=d_menu[PCODE][i].param;
//NEW_ITEM->OnClick=MenuClick;

NEW_ITEM->Add(CreateMenuSubLevel(d_menu[PCODE][i].ncode));

MENU_ITEM->Add(NEW_ITEM);
}

return(MENU_ITEM);
}



Страницы: 1 вся ветка

Текущий архив: 2003.09.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.029 c
14-1655
Knight
2003-08-12 10:02
2003.09.01
Все упали ниц.... перед супер-пупер програмером... :))))))


3-1300
GILforever
2003-08-02 02:29
2003.09.01
Типы в InterBase


9-1267
cyborg
2003-03-01 21:09
2003.09.01
Значение константы изменения колёсика мышки в DirectInput8


7-1682
Oleg
2003-06-17 18:42
2003.09.01
Windows shutdown


14-1575
likeanangel
2003-08-11 17:32
2003.09.01
Редактор метафайлов